WireGuard 内网穿透之简单 TCP 转发

至于我为什么叫他简单 TCP 转发主要是因为被穿透的那个机子看到的 IP 始终是WRT的内网 IP, 缺点就这一个, 但优点是配置起来要简单不少先让 VPS 创建一个Socket文件来监听端口nano /etc/systemd/system/pve-tcp-proxy.socket[Unit] Description=PVE TCP proxy listen...

至于我为什么叫他简单 TCP 转发主要是因为被穿透的那个机子看到的 IP 始终是WRT的内网 IP, 缺点就这一个, 但优点是配置起来要简单不少

先让 VPS 创建一个Socket文件来监听端口

nano /etc/systemd/system/pve-tcp-proxy.socket
[Unit]
Description=PVE TCP proxy listener on port 18006

[Socket]
ListenStream=0.0.0.0:18006
NoDelay=true

[Install]
WantedBy=sockets.target

再创建对应服务nano /etc/systemd/system/pve-tcp-proxy.service

[Unit]
Description=Proxy TCP port 18006 to PVE over WireGuard
Requires=pve-tcp-proxy.socket
After=network-online.target
Wants=network-online.target

[Service]
ExecStart=/usr/lib/systemd/systemd-socket-proxyd 10.251.0.2:8006
NoNewPrivileges=true
PrivateTmp=true
ProtectHome=true
ProtectSystem=strict

启动服务

systemctl daemon-reload
systemctl enable --now pve-tcp-proxy.socket

这样就能直接从服务器的 18006 端口访问到WRT 的 8006 端口了, 接下来让 WRT 的 8006 端口转发到PVE的 8006 端口

来到WRT的 LUCI 里, 进入防火墙配置, 先配置端口转发, 从wg来的 TCP 入栈转发到 8006 端口

image.png

接下来再来到 NAT 转发配置

image.png

到这里就配置完了, 可直接访问服务, 发现已经通了, 最后用nginx反代一下 127 就可以域名访问了

Conversation

No comments

Leave a reply