如何从适配器转发到localhost,更改端口


3

我正在使用Ubuntu 16服务器。

我试图使用iptables将端口从特定的网络适配器和端口转发到lo / 127.0.0.1上的特定端口。这似乎是正确的工具。

举个例子,让我们想象一下我想让适配器ens192将端口8443上的传入流量转发到127.0.0.1:443。我不希望ens192的443达到127.0.0.1:443 ......它应该显得关闭。

为了方便起见,我在全新安装时进行了以下调用(如sudo su):

# sysctl -w net.ipv4.ip_forward=1  # permits port-forwarding
# sysctl -w net.ipv4.conf.ens192.route_localnet=1  # permits routing adapter 2 localhost
# iptables -P INPUT DROP
# iptables -t nat -A PREROUTING -i ens192 -p tcp --dport 8443 -j DNAT \
--to-destination 127.0.0.1:443
# iptables -t nat -A POSTROUTING -o ens192 -j MASQUERADE

但是,这不起作用...浏览到[ip]:8443没有产生预期的结果...浏览器超时。

我已验证服务器在所需端口上正常运行。

我假设浏览器的TCP请求在服务器内发生变化,看起来好像它与127.0.0.1:443联系。然后,当响应时,IP地址转换回ens192的地址/端口,而不是它离开。或不?


“似乎正确的工具”和“正确的工具”在这里有所不同。我怀疑iptables不是很好的不同端口。如果有的话。所以更好的工具是apache2的配置文件。
Joseph Van Riper

Answers:


0

看起来问题是您将规则添加到NAT流量,但实际上不允许它通过。以下规则是允许您进行NAT设置的所有流量的快速方法:

iptables -A INPUT -m conntrack --ctstate DNAT -j ACCEPT

看看这个规则是否符合您的要求。如果仍然无效,请尝试暂时将INPUT链路策略更改回ACCEPT,以确定防火墙是否存在问题。


遗憾的是,这不起作用。将INPUT链路策略更改回ACCEPT也无法使其工作。
Joseph Van Riper
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.