> 技术文档 > 在CentOS上用Docker搭建WireGuard虚拟局域网 2025最新_wg-easy docker

在CentOS上用Docker搭建WireGuard虚拟局域网 2025最新_wg-easy docker


在CentOS上用Docker搭建WireGuard虚拟局域网

最近实习发现访问公司内网都需要登录openvpn或者wireguard,很好奇原理是什么,跟着B站Up主司波图的教程,尝试自己搭建一下虚拟局域网,但是过程中遇到了很多问题,比如发现死活访问不了docker hub拉取不了镜像,最终拉取镜像由于服务器内核版本过低又启动不了容器。这篇文章主要是分享遇到的一些问题以及解决办法,希望能给需要的人提供一些帮助。

提示:服务器内核版本需要高于5.6,服务器最好要能访问docker hub。

1、Docker安装WireGuard

docker run -d \\ --name=wg-easy \\ -e WG_HOST=123.123.123.123 (🚨这里输入服务器的公网IP) \\ -e PASSWORD_HASH=\'你的密码hash值\' \\ (🚨这里输入你的密码) \\ -e WG_DEFAULT_ADDRESS=10.0.8.x (🚨默认IP地址)\\ -e WG_DEFAULT_DNS=114.114.114.114 (🚨默认DNS)\\ -e WG_ALLOWED_IPS=10.0.8.0/24 (🚨允许连接的IP段)\\ -e WG_PERSISTENT_KEEPALIVE=25 (🚨重连间隔)\\ -v ~/.wg-easy:/etc/wireguard \\ -p 51820:51820/udp \\ -p 51821:51821/tcp \\ --cap-add=NET_ADMIN \\ --cap-add=SYS_MODULE \\ --sysctl=\"net.ipv4.conf.all.src_valid_mark=1\" \\ --sysctl=\"net.ipv4.ip_forward=1\" \\ --restart unless-stopped \\ ghcr.io/wg-easy/wg-easy

但是输入上面的命令出错了,大概意思是访问不了docker hub
在CentOS上用Docker搭建WireGuard虚拟局域网 2025最新_wg-easy docker

下面使用阿里云官网的镜像加速试试
在CentOS上用Docker搭建WireGuard虚拟局域网 2025最新_wg-easy docker

sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-\'EOF\'{ \"registry-mirrors\": [\"https://xxxxxx.mirror.aliyuncs.com\"]}EOFsudo systemctl daemon-reloadsudo systemctl restart docker

但是还是不行,下面尝试使用windows安装docker,手动下载镜像文件上传到服务器,这一步其实也挺麻烦的,也可以按照自己的方式下载

2、下载windows的Docker desktop

下面的链接是安装windows的docker教程,在1分钟的位置。

链接:link

安装完docker之后,按照下面的步骤搜索weejewel/wg-easy镜像,并拉取
在CentOS上用Docker搭建WireGuard虚拟局域网 2025最新_wg-easy docker
拉取完之后,在windows的cmd输入下面的命令,拷贝出一个tar压缩包,再上传到自己的服务器
在CentOS上用Docker搭建WireGuard虚拟局域网 2025最新_wg-easy docker
大于符号右边的是你需要拷贝出来的目标路径,save右边跟上你的镜像名
然后上传到你的服务器,在服务器执行下面的命令
在CentOS上用Docker搭建WireGuard虚拟局域网 2025最新_wg-easy docker
我记得文件名好像不能带/这个符号,所以我这里改名字了,改为了wg-easy.tar。可以看到已经加载成功了,再执行下面的命令,

docker run -d \\ --name=wg-easy \\ -e WG_HOST=123.123.123.123 (🚨这里输入服务器的公网IP) \\ -e PASSWORD_HASH=\'你的密码hash值\' \\(🚨这里输入你的密码) \\ -e WG_DEFAULT_ADDRESS=10.0.8.x (🚨默认IP地址)\\ -e WG_DEFAULT_DNS=114.114.114.114 (🚨默认DNS)\\ -e WG_ALLOWED_IPS=10.0.8.0/24 (🚨允许连接的IP段)\\ -e WG_PERSISTENT_KEEPALIVE=25 (🚨重连间隔)\\ -v ~/.wg-easy:/etc/wireguard \\ -p 51820:51820/udp \\ -p 51821:51821/tcp \\ --cap-add=NET_ADMIN \\ --cap-add=SYS_MODULE \\ --sysctl=\"net.ipv4.conf.all.src_valid_mark=1\" \\ --sysctl=\"net.ipv4.ip_forward=1\" \\ --restart unless-stopped \\ ghcr.io/wg-easy/wg-easy

在CentOS上用Docker搭建WireGuard虚拟局域网 2025最新_wg-easy docker
总算把镜像加载完成了

docker run -d \\ --name=wg-easy \\ -e WG_HOST=123.123.123.123 \\ -e PASSWORD_HASH=\'你的密码hash值\' \\ -e WG_DEFAULT_ADDRESS=10.0.8.x \\ -e WG_DEFAULT_DNS=114.114.114.114 \\ -e WG_ALLOWED_IPS=10.0.8.0/24 \\ -e WG_PERSISTENT_KEEPALIVE=25 \\ -v ~/.wg-easy:/etc/wireguard \\ -p 51820:51820/udp \\ -p 51821:51821/tcp \\ --cap-add=NET_ADMIN \\ --cap-add=SYS_MODULE \\ --sysctl=\"net.ipv4.conf.all.src_valid_mark=1\" \\ --sysctl=\"net.ipv4.ip_forward=1\" \\ --restart unless-stopped \\ ghcr.io/wg-easy/wg-easy

提示一下,如果这里访问服务器地址加端口51821不出来的话,看下容器是不是一直在重启,如果一直在重启的话,通过docker logs 【镜像名】看下原因,如果不是配置问题,一般就是服务器内核版本低于5.6,如果由于内核版本过低可以参考下面我的这篇文章升级内核版本到5.6及以上

https://blog.csdn.net/weixin_63767408/article/details/145281651?ops_request_misc=%257B%2522request%255Fid%2522%253A%25228506e23b220521c4a59b4be026b4f439%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=8506e23b220521c4a59b4be026b4f439&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltime_text~default-1-145281651-null-null.142

最后终于启动成功了,然后在浏览器中输入你的服务器的ip地址加上51821端口,应该就能访问下面的页面了,下面的操作就很简单了,就跟者视频来吧,我不管了。
在CentOS上用Docker搭建WireGuard虚拟局域网 2025最新_wg-easy docker
加入wiregurad设备视频链接:link,从44分9秒开始。
他的视频里面也有直接在服务器搭建wireguard的方法,但是我觉得docker那个可视化要操作简单一些。