WireGuard配合nginx实现内网服务器ip穿透
创始人
2025-01-16 18:05:07
0

初衷

  1. 解决云服务器贵的问题
  2. 解决云服务器部署麻烦问题
  3. 解决云服务器环境搭建网络慢问题

实现原理

  1. 通过WireGuard连通公网ip服务器跟内网ip服务器
  2. 通过公网ip服务器nginx反向代理内网ip服务器
  3. 访问公网ip服务器域名实际上访问了内网ip服务器端口

测试环境

  • 公网ip服务器

  1. 操作系统:debian_12.5
  2. WireGuard:wireguard-tools v1.0.20210914 - https://git.zx2c4.com/wireguard-tools/
  3. nginx:nginx/1.22.1
  4. 公网ip:8.217.127.19
  5. 内网ip:eth0 172.18.103.185/20
  • 内网ip服务器
  1. 操作系统:debian_12.5(Oracle VM VirtualBox虚拟机桥接网络)
  2. WireGuard:wireguard-tools v1.0.20210914 - https://git.zx2c4.com/wireguard-tools/
  3. nginx:nginx-1.24.0(编译安装)
  4. 公网ip:无
  5. 内网ip:enp0s3 192.168.1.8/24
  6. DNS:192.168.1.1, 114.114.114.114
  • 第三方客户端
  1. 操作系统:win10(电信光猫)
  2. WireGuard:无
  3. nginx:无
  4. 公网ip:无
  5. 内网ip:192.168.1.5
  6. DNS:192.168.1.1, 114.114.114.114

软件安装及配置

  • 公网ip服务器
  1. WireGuard

apt update

apt install wireguard

cd /etc/wireguard/

umask 077; wg genkey | tee privatekey_s | wg pubkey > publickey_s

umask 077; wg genkey | tee privatekey_192_168_1_8 | wg pubkey > publickey__192_168_1_8

vim /etc/sysctl.conf

#添加

net.ipv4.ip_forward = 1

#生效

sysctl -p

vim /etc/wireguard/wg0.conf

#添加 注:修改配置前先停止运行wg-quick down wg0

[Interface]
Address = 172.18.103.185/20
SaveConfig = true
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820

#privatekey_s

PrivateKey = cBSjtbk31HuCkXNJKTA4clRwTd+ojHlrhXNDmsDzymY=

[Peer]
PublicKey = bW4lJJMBDKJMU18i8Sly+cxi6aixptOXOLcnhhGfyzQ=
AllowedIPs = 192.168.1.9/32

[Peer]

#publickey__192_168_1_8

PublicKey = Q6LDJppJKyOU/qO6Y9JJQnc/kS/cAqqu5TjEkHapKnI=
AllowedIPs = 192.168.1.8/32

#启动

wg-quick up wg0

  1. nginx

apt update

apt install nginx

vim /etc/nginx/sites-enabled/192_168_1_8

#添加

server {     listen 8080; #有域名后改为80      server_name localhost; #有域名后改为域名      index index.html;      location / {         proxy_pass http://192.168.1.8:80/;      } }

service nginx restart

  • 内网ip服务器
  1. WireGuard

#安装同上不用生成秘钥

#配置如下

[Interface]

Address = 192.168.1.8/24

DNS = 192.168.1.1, 114.114.114.114

#privatekey_192_168_1_8

PrivateKey = EJE36sGBmwFOgBgXhE/9EQss2DkiGDbbozvcJHOL8ks=

#ListenPort = 51820

[Peer]

#publickey_s

PublicKey = sQ87BE5uQijxGrlP79wu4MHGRSe99qsKaQ+/YEv3M0s=

AllowedIPs = 172.18.103.185/32

#AllowedIPs = 0.0.0.0/0

Endpoint = 8.217.127.19:51820

#启动

wg-quick up wg0

  1. nginx

#上线环境

测试

  • 公网ip服务器
  1. ping 192.168.1.8
  2. wg
  • 内网ip服务器
  1. ping 172.18.103.185
  2. wg
  • 第三方客户端
  1. ping 192.168.1.8
  2. ping 8.217.127.19
  3. 浏览器访问http://192.168.1.8/
  4. 浏览器访问http://8.217.127.19/
  5. 浏览器访问http://8.217.127.19:8080/ #使用域名则访问域名

总结

  • 实际使用中请将wg-quick@wg0添加为服务
  • 已知bug
  1. 客户端浏览器访问公网ip8080端口会504,但内网服务器ping一下公网ip服务器的内网ip后又正常
  • 参考命令
  1. 重启nginx服务:service nginx restart
  2. 启用wg0网卡:wg-quick up wg0
  3. 停用用wg0网卡:wg-quick down wg0
  • 参考文档
  1. WireGuard - Debian Wiki

相关内容

热门资讯

六分钟有挂!拱趴大菠萝有辅助吗... 六分钟有挂!拱趴大菠萝有辅助吗(辅助挂)2025新版总结(原本真的有挂)1、很好的工具软件,可以解锁...
第七分钟了解!边锋透视插件(辅... 第七分钟了解!边锋透视插件(辅助挂)都是存在有挂(详细辅助软件);亲真的是有正版授权,小编(透视辅助...
今日头条!哈灵脚本辅助(辅助挂... 今日头条!哈灵脚本辅助(辅助挂)先前存在有挂(详细辅助AI教程)1、很好的工具软件,可以解锁游戏的a...
第十分钟辅助器!微乐自建房脚本... 第十分钟辅助器!微乐自建房脚本免费下载(辅助挂)必备教程(从前真的有挂)是一款可以让一直输的玩家,快...
3分钟了解!湖北逍遥辅助(辅助... 3分钟了解!湖北逍遥辅助(辅助挂)一贯存在有挂(详细辅助软件);1分钟了解详细教程(微信 13670...
传递经验!悟空大厅辅助助手下载... 传递经验!悟空大厅辅助助手下载安装(辅助挂)原本存在有挂(详细辅助必胜教程)1、许多玩家不知道悟空大...
第三分钟辅助!龙江博乐填大坑辅... 您好,龙江博乐填大坑辅助这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家...
八分钟了解!乐酷副厅房间科技(... 八分钟了解!乐酷副厅房间科技(辅助挂)竟然是有挂(详细辅助工具)准备好在乐酷副厅房间科技 ia的高塔...
玩家必看科普!决战卡五星辅助(... 玩家必看科普!决战卡五星辅助(辅助挂)起初真的是有挂(详细辅助玩家教你)准备好在决战卡五星辅助ia的...
第9分钟辅助挂!赣湘互娱挂(辅... 第9分钟辅助挂!赣湘互娱挂(辅助挂)安装教程(一直有挂)是一款可以让一直输的玩家,快速成为一个“必胜...