我在 NAT 后面的计算机上有一个带有几 TB 数据的 Web 服务器。我想通过我在 Azure 的 VPS 将它公开到 Internet。
所以,我认为 WireGuard 将是一个很好的工具,但我无法弄清楚如何做到这一点的配置。
这是wg0.conf
在那个背后的 NAT 服务器上:
[Interface]
PrivateKey = OBUNhf6***
Address = 192.168.10.2/24
[Peer]
PublicKey = sUukxiqVNJQpcUVLYu/+fmHH+K9qD7Ol9CipOdlOc3c=
AllowedIPs = 192.168.10.1/24
Endpoint = 13.66.155.255:8101
PersistentKeepalive = 25
在同一台计算机上运行 curl,显示 Web 服务器在端口 9000 上工作正常:
$ curl -s http://192.168.10.2:9000/
<html><head>
<title>Welcome to nginx!</title>
...
那个 13.66.155.255 端点 - 是 VPS 的 IP。所以,现在,我正在 Azure 上配置我的 Ubuntu 19.10 VPS。所以wg0.conf
:
[Interface]
PrivateKey = sDH1wvnyRKE***
ListenPort = 8101
Address = 192.168.10.1/24
Table = 1234
PostUp = ip rule add ipproto tcp dport 9000 table 1234
PreDown = ip rule delete ipproto tcp dport 9000 table 1234
[Peer]
PublicKey = cnHwqyRLukwYoYw8nl+PH57ZsCKnMmStmXBAZSRNfx0=
AllowedIPs = 192.168.10.0/24
我在两台计算机上都启动了 WireGuard。看起来 KeepAlive 数据包传输成功(我看到传输增加)。
我可以像这样从 VPS 中打开该网络服务器:
VPS# curl 192.168.10.2:9000
<html><head>
<title>Welcome to nginx!</title>
...
但我无法从 VPS 外部打开该网络服务器:
% curl http://13.66.155.255:9000/
curl: (7) Failed to connect to 13.66.155.255 port 9000: Connection refused
我的 Azure 防火墙 (NSG) 开放了 8101 和 9000 端口。
我的 Ubuntu 防火墙已禁用。
启用内核 PF:net.ipv4.ip_forward=1
我错过了什么?iptables
我应该在此之上进行某种配置吗?