我想将我的公网 IP 地址 (ip1) 上的 8140 端口重定向到 Internet 主机 (ip2) 上的 8140 端口

我想将我的公网 IP 地址 (ip1) 上的 8140 端口重定向到 Internet 主机 (ip2) 上的 8140 端口

编辑3:

我想得到确切描述的内容http://shorewall.net/FAQ.htm#faq1g但它对我不起作用。

编辑3结束;

操作系统:debian squeeze shorwall:4.4.11.6-3

3 台计算机 a、b 和 c;shorewall 在计算机 b 上,我想从 b 到 c 对端口 8140 进行 dnat,这样计算机 a 就可以连接到 b,并将被 dn 到 c,遵循 faq 1g(感谢 omache)http://www.shorewall.net/FAQ.htm#faq1g规则、接口、masq 根据 faq 设置

直接连接工作:

a->b   a->b->b(temp rule: DNAT:debug   net   fw:ip.of.computer.b:80   tcp   8140   -   -)
b->c   
a->c 

计算机 b 上的常规 shortwall 规则:

DNAT:debug   net   net:ip.of.computer.c:8140   tcp   8140   -   ip.of.computer.b
DNAT:debug   $FW   net:ip.of.computer.c:8140   tcp   8140   -   ip.of.computer.b

所以 dnating 应该可以工作。根据常见问题解答,我调试了 dnat。包数量增加了。

问题是http://www.shorewall.net/FAQ.htm#faq1a“丢弃出站 SYN、ACK 响应。”如何调试?那么 b->c 和 a->c 直接连接是否也会出现问题,或者它们在没有 syn、ack 的情况下是否能正常工作

a->b->c    does not work
b->b->c    does work

来自 a->b->c 连接的日志条目

Oct 11 03:34:03 servername kernel: [3457359.671611] Shorewall:net_dnat:DNAT:IN=eth0 OUT= MAC=-SNIP- SRC=ip.of.computer.a DST=ip.of.computer.b LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=49585 DF PROTO=TCP SPT=60499 DPT=8140 WINDOW=5840 RES=0x00 SYN URGP=0

编辑1:

进行了更多的调试测试,再次感谢 omache。

tcpdump ‘ip 主机 A 或 B 或 C 且不 (端口 ssh 或 http 或 smtp 或 pop3)’ tcpdump ‘ip 主机 A 或 B 或 D 且不 (端口 ssh 或 smtp 或 pop3)’

A->B->C (dnat):显示传入流量,但没有流量传到 C B->B->C (本地 dnat):有效,显示流量传到 C

这不是 syn、ack 问题,我用第四个主机 D 进行了测试,并将 C 与 D 交换,D 是能够回复 ACK 和 SYN 的服务器

我仔细检查了常见问题解答信息,这是我的受影响文件的内容:

规则

DNAT:debug   net     net:$HOST_IP_D:80 tcp  8140 -  $HOST_IP_B

接口

net     eth0    detect   tcpflags,logmartians,nosmurfs,routeback

面具

eth0:$HOST_IP_D  0.0.0.0/0   $HOST_IP_B  tcp          80

答案1

shorewall 邮件列表提供了帮助(感谢 tom)

短墙配置文件

IP_FORWARDING=On

相关内容