有两种方法可以启用端口转发,方法是输入
sudo sysctl -w net.ipv4.conf.eth1.route_localnet=1
或取消注释下一行
net.ipv4.ip_forward=1
在 中/etc/sysctl.conf
,第一个命令指定以太网的名称。
哪一种更利于隐私?
答案1
net.ipv4.ip_forward=1
更好。对于简单的端口转发,第一种方法是不必要的并且通常是错误的。我将引用官方内核文档route_localnet
Route_localnet - BOOLEAN 路由时不要将环回地址视为火星源或目的地。这使得 127/8 能够用于本地路由目的。默认为假
https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt
答案2
这是两个不同的选择。
您的计算机上可能有多个本地地址,包括环回地址。例如,要将端口 8080 从 127.0.0.1 转发到地址为 192.168.0.1 的外部接口 ens0:
sysctl -w net.ipv4.conf.ens0.route_localnet=1
iptables -t nat -A PREROUTING -i ens0 -p tcp --dport 8080 -j DNAT --to 127.0.0.1
套接字 127.0.0.1:8080 上的服务将从 192.168.0.1:8080 开始可用。
这可以在以下抽象中清楚地看到:切换“localhost source [YN]”,它位于“mangle PREROUTING”之后