将所有端口从一个本地 IP 地址转发到本地主机,同时还允许本地主机使用该 IP 地址
Forward all ports from one local IP address to localhost, while also allowing localhost to use that IP address
我正在尝试设置 WireGuard,以便我可以在 B 上访问 A 的本地主机。但是,这是不可能的,所以我想到了将 10.200.200.1
(A 的 WireGuard IP)映射到 127.0.0.1
使用
sudo iptables -t nat -A PREROUTING -d 10.200.200.1 -j DNAT --to-destination 127.0.0.1
sudo iptables -t nat -A POSTROUTING -s 127.0.0.1 -j SNAT --to-source 10.200.200.1
这有效(当 B 在 Wireguard 中请求 10.200.200.1:2001
时,它实际上从 A 的角度请求 127.0.0.1:2001
),但 A 无法访问 10.200.200.1:2001
。我该如何解决?
编辑:sudo iptables -t nat -A OUTPUT -d 10.200.200.1 -j DNAT --to-destination 127.0.0.1
可以在 A 上公开 10.200.200.1
,但现在 B 无法连接到 10.200.200.1
好的,我想通了 -- 这包括三个部分:
sysctl
sudo sysctl -w net.ipv4.conf.all.route_localnet=1
sudo sysctl -w net.ipv4.ip_forward=1
为了在 A 上工作:
sudo iptables -t nat -A OUTPUT -d 10.200.200.1 -j DNAT --to-destination 127.0.0.1
要在 B 上工作的连接:
sudo iptables -t nat -A PREROUTING -d 10.200.200.1 -j DNAT --to-destination 127.0.0.1
您可能还需要:
sudo iptables -t nat -A POSTROUTING -s 127.0.0.1 -j SNAT --to-source 10.200.200.1
我正在尝试设置 WireGuard,以便我可以在 B 上访问 A 的本地主机。但是,这是不可能的,所以我想到了将 10.200.200.1
(A 的 WireGuard IP)映射到 127.0.0.1
使用
sudo iptables -t nat -A PREROUTING -d 10.200.200.1 -j DNAT --to-destination 127.0.0.1
sudo iptables -t nat -A POSTROUTING -s 127.0.0.1 -j SNAT --to-source 10.200.200.1
这有效(当 B 在 Wireguard 中请求 10.200.200.1:2001
时,它实际上从 A 的角度请求 127.0.0.1:2001
),但 A 无法访问 10.200.200.1:2001
。我该如何解决?
编辑:sudo iptables -t nat -A OUTPUT -d 10.200.200.1 -j DNAT --to-destination 127.0.0.1
可以在 A 上公开 10.200.200.1
,但现在 B 无法连接到 10.200.200.1
好的,我想通了 -- 这包括三个部分:
sysctl
sudo sysctl -w net.ipv4.conf.all.route_localnet=1
sudo sysctl -w net.ipv4.ip_forward=1
为了在 A 上工作:
sudo iptables -t nat -A OUTPUT -d 10.200.200.1 -j DNAT --to-destination 127.0.0.1
要在 B 上工作的连接:
sudo iptables -t nat -A PREROUTING -d 10.200.200.1 -j DNAT --to-destination 127.0.0.1
您可能还需要:
sudo iptables -t nat -A POSTROUTING -s 127.0.0.1 -j SNAT --to-source 10.200.200.1