请教同一网段下两台redhat 9端口转发问题?

发布于 2022-07-26 08:04:19 字数 359 浏览 12 评论 5

我公司的两台redhat 9 Linux 服务器在公网的同一网段内,子网掩码,网关都相同。(IPa、IPb)目前需要把IPa的80端口映射到IPb的18000上,IPb的18000是tomcat服务的端口,我用iptable做了在IPa上做了设置:
/sbin/iptables -t nat -A PREROUTING -p tcp -d IPa --dport 80 -i eth0  -j DNAT  --to IPb:18000

我用telnet和直接用浏览器访问,用netstat -an看到在IPb上有连接,但是连接状态总是SYN_RECV
而且打不开tomcat的页面。
希望有经验的朋友帮忙想想办法!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

似狗非友 2022-07-28 07:47:11

非常感谢楼上2位的回复,我刚接触iptable,使用的很不熟练,这个脚本也是照着别人在其它机器上做过的配置写的,进行了一点修改而已。还希望能告诉我,正确完整的教本配置。或是其它什么比较简便快捷的配置方法。谢谢!!

梦在深巷 2022-07-28 06:53:41

-A POSTROUTING -s *.*.70.0/255.255.255.0 -o eth0 -j SNAT --to-source IPa

楼上答得非常好

问题出在SNAT上

情绪 2022-07-28 06:08:20

原帖由 wang_yilun 于 2006-10-30 11:59 发表
我公司的两台redhat 9 Linux 服务器在公网的同一网段内,子网掩码,网关都相同。(IPa、IPb)目前需要把IPa的80端口映射到IPb的18000上,IPb的18000是tomcat服务的端口,我用iptable做了在IPa上做了设置:
/sbin/iptables -t nat -A PREROUTING -p tcp -d IPa --dport 80 -i eth0  -j DNAT  --to IPb:18000

我用telnet和直接用浏览器访问,用netstat -an看到在IPb上有连接,但是连接状态总是SYN_RECV
而且打不开tomcat的页面。
希望有经验的朋友帮忙想想办法!

不可以这样用,因为封包过去就回不来了。

其中主要原因是,client --> a --> b 这样流程来看,iptables 该语法把封包丢给 b 时,b 看到的 ip 封包来源是 client,但是 b 的 default gw 不是 a,所以封包不会通过 a 回覆回去,封包传输回应就失败了。

正确方式有很多作法,比方一般的 http proxy 代理的服务达成需求,或者是纯 tcp proxy 也可以。

若你只是要使用 iptables 的话,可以再搭配 SNAT 来伪装 ip。

[/code]iptables -t nat -A POSROUTING -d IPb -j MASQUERADE[/code]

==

==

蓝礼 2022-07-27 22:14:00

这个是执行的教本中的全部内容
#!/bin/sh
#open kell's forward
echo 1 > /proc/sys/net/ipv4/ip_forward

#load modules for iptable
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_nat_irc
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
modprobe ip_tables
modprobe iptable_filter
modprobe ipt_limit
modprobe ipt_state
echo "Starting iptables rules..."

#delete old ruler chain
/sbin/iptables -F INPUT
/sbin/iptables -F FORWARD
/sbin/iptables -F OUTPUT
/sbin/iptables -F PREROUTING -t nat
/sbin/iptables -F POSTROUTING -t nat

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -s *.*.*.224/27 -j ACCEPT

iptables -A FORWARD -i eth1 -j ACCEPT
iptables -A FORWARD -o eth1 -j ACCEPT
iptables -A FORWARD -i eth0 -j ACCEPT
iptables -A FORWARD -o eth0 -j ACCEPT
iptables -A FORWARD -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -p tcp -s 0/0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp -s 0/0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

iptables -t nat -A POSTROUTING -o eth0 -s *.*.*.0/24 -j SNAT --to IPa
#gcb
/sbin/iptables -t nat -A PREROUTING -p tcp -d IPa --dport 80 -i eth0  -j DNAT  --to IPb:18000

[root@localhost ~]# iptables-save
# Generated by iptables-save v1.2.11 on Mon Oct 30 15:23:46 2006
*filter
:INPUT ACCEPT [2121:696166]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [6383:813856]
-A INPUT -p tcp -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.0.0/255.255.255.0 -j ACCEPT
-A FORWARD -s *.*.70.224/255.255.255.224 -j ACCEPT
-A FORWARD -i eth1 -j ACCEPT
-A FORWARD -o eth1 -j ACCEPT
-A FORWARD -i eth0 -j ACCEPT
-A FORWARD -o eth0 -j ACCEPT
-A FORWARD -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Mon Oct 30 15:23:46 2006
# Generated by iptables-save v1.2.11 on Mon Oct 30 15:23:46 2006
*nat
REROUTING ACCEPT [10998:1160395]
OSTROUTING ACCEPT [3727:223048]
:OUTPUT ACCEPT [10771:649935]
-A PREROUTING -d IPa -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination IPb:18000
-A POSTROUTING -s *.*.70.0/255.255.255.0 -o eth0 -j SNAT --to-source IPa
COMMIT
# Completed on Mon Oct 30 15:23:46 2006

[ 本帖最后由 wang_yilun 于 2006-10-30 15:33 编辑 ]

很酷又爱笑 2022-07-27 18:34:22

iptables-save出来看一下

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文