基于Wireguard技术的虚拟个人网络搭建(转)
原文(https://gitee.com/spoto/wireguard#docker%E5%AE%89%E8%A3%85wireguard)
手动安装Wireguard
安装Wireguard(以ubuntu20.04为基础)
#root权限 sudo -i #安装wireguard软件 apt install wireguard resolvconf -y #开启IP转发 echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf sysctl -p
进入配置存储路径,调整目录权限
cd /etc/wireguard/ chmod 0777 /etc/wireguard #调整目录默认权限 umask 077
生成服务器秘钥
#生成私钥 wg genkey > server.key #通过私钥生成公钥 wg pubkey < server.key > server.key.pub
生成客户端(client1)秘钥
#生成私钥 wg genkey > client1.key #通过私钥生成公钥 wg pubkey < client1.key > client1.key.pub
显示所有生成的秘钥
cat server.key && cat server.key.pub && cat client1.key && cat client1.key.pub
自动创建服务器配置文件
echo " [Interface] PrivateKey = $(cat server.key) # 填写本机的privatekey 内容 Address = 10.0.8.1 #本机虚拟局域网IP PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE #注意eth0需要为本机网卡名称 ListenPort = 50814 # 监听端口 DNS = 8.8.8.8 MTU = 1420 [Peer] PublicKey = $(cat client1.key.pub) #自动client1的公钥 AllowedIPs = 10.0.8.10/32 #客户端所使用的IP" > wg0.conf
设置服务器开机自启动
systemctl enable wg-quick@wg0
启动wireguard
#启动wg0 wg-quick up wg0 #关闭wg0 wg-quick down wg0
手动创建服务器配置文件
nano /etc/wireguard/wg0.conf
(插入服务器生成的配置)
wireguard客户端下载地址
https://www.wireguard.com/install/
客户端配置(以client1为例)
[Interface] PrivateKey = 6M8HEZioew+vR3i53sPc64Vg40YsuMzh4vI1Lkc88Xo= #此处为client1的私钥 Address = 10.0.8.10 #此处为peer规定的客户端IP MTU = 1500 [Peer] PublicKey = Tt5WEa0Vycf4F+TTjR2TAHDfa2onhh+tY8YOIT3cKjI= #此处为server的公钥 AllowedIPs = 10.0.8.0/24 #此处为允许的服务器IP Endpoint = 114.132.56.178:50814 #服务器对端IP+端口
增加服务器客户端节点client2
#生成私钥 wg genkey > client2.key #通过私钥生成公钥 wg pubkey < client2.key > client2.key.pub #将peer公钥加入wg0.conf配置 echo " [Peer] PublicKey = $(cat client2.key.pub) #自动client1的公钥 AllowedIPs = 10.0.8.11/32 #客户端Client2所使用的IP" >> wg0.conf
Docker安装Wireguard
通过容器安装wg-easy
docker run -d \ --name=wg-easy \ -e WG_HOST=123.123.123.123 (🚨这里输入服务器的公网IP) \ -e PASSWORD=passwd123 (🚨这里输入你的密码) \ -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 \ weejewel/wg-easy
更新容器命令
docker stop wg-easy docker rm wg-easy docker pull weejewel/wg-easy
再次声明仅转载保存之用,原文地址(https://gitee.com/spoto/wireguard#%E6%89%8B%E5%8A%A8%E5%AE%89%E8%A3%85wireguard)
-----
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
2021-12-15 [Linux]搭建USB摄像头转RTSP服务一例