linux – 在本地ip上将公共端口81转发到端口80

我是serverfault的新手,所以请通知我任何不良行为:)

搜索了serverfault(和谷歌)的答案,但找不到我的问题的答案
(我可以找到部分我需要的答案,但我缺乏将它们与我的问题的解决方案相结合的知识/经验)

问题如下:
我有一个公共服务器端口81,可在公共IP地址上找到
我有一个端口80的本地服务器,公众无法使用
– 我希望用户连接到公共IP地址上的端口81,并到达本地服务器的端口80(192.168.98.###)

我想我需要用iptables做一些配置,但这对我来说非常模糊

我从How can I port forward with iptables?尝试了一些答案
但我遇到了各种各样的错误

一些问题 :
– 本地服务器是否必须有一些特殊配置?例如,我必须将网关设置为公共服务器的IP地址吗?
– / proc / sys / net / ipv4 / conf / ppp0不存在,是不是有问题?

防火墙没有阻止端口

我完全控制正在运行的公共服务器:

# cat /proc/version
Linux version 2.4.22-1.2115.nptl (bhcompile@daffy.perf.redhat.com) (gcc version 3.2.3 20030422 (Red Hat Linux 3.2.3-6)) #1 Wed Oct 29 15:42:51 EST 2003
# iptables --version
iptables v1.2.8

我不知道本地服务器的操作系统,也无法控制其配置

你能解释一下我可以使用的iptables设置,还是其他任何配置?

解决方法

首先,如果您没有在网关上运行调制解调器,则不需要处理此/ proc / sys / net / ipv4 / conf / ppp0.

你需要做的第一件事就是在网关上启用转发,如下所示:

# echo '1' > /proc/sys/net/ipv4/conf/eth0/forwarding (if you are running your live IP on eth0)

然后像这样简单地转发您的流量:

# iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.1.2:80
# iptables -A FORWARD -p tcp -d 192.168.1.2 --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

您应该将192.168.1.2替换为您机器的内部IP.另外,将eth0替换为网关上具有实时IP的接口.

最后,正如您之前阅读的帖子中所述,您可以检查路由

# ip route

希望这有帮助.如果您遇到问题,请随时回复.

另外,请发布您在此过程中获得的错误.

相关文章

/etc/sysctl.conf这个目录主要是配置一些系统信息,/etc/sys...
1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起...
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅...
不管是我们在安装软件还是监测软件的使用性能,我们都要随时...
装好Tomcat7后,发现除了本机能访问外界访问不了,岂有此理。...
修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,...