linux – AWS VPC IPtables NAT:端口转发无法正常工作

linux – AWS VPC IPtables NAT:端口转发无法正常工作,第1张

概述昨天,我发了一个问题 here,但我认为我的话并不清楚.顺便说一句,这个问题不重复. 我有AWS VPC设置如下. 目标/问题:从互联网SSH到服务器A.它不起作用. 服务器A在私有子网中,因此我想在我的NAT实例上启用iptables NATing,以便我可以直接从Internet上ssh到SErver A. 我跟随this和this 我在NAT实例上运行以下命令: NAT# iptables 昨天,我发了一个问题 here,但我认为我的话并不清楚.顺便说一句,这个问题不重复.

我有AWS VPC设置如下.

目标/问题:从互联网SSH到服务器A.它不起作用.

服务器A在私有子网中,因此我想在我的NAT实例上启用iptables NATing,以便我可以直接从Internet上ssh到SErver A.

我跟随this和this

我在NAT实例上运行以下命令:

NAT# iptables -t nat -A PREROUTING  -p tcp --dport 2222 -j DNAT --to-destination 10.0.1.243:22

在NAT实例上启用IP转发

NAT# sysctl  -pnet.ipv4.ip_forward = 1

MASQUERADE在NAT实例上运行:

NAT# iptables -t nat -vnL POSTROUTINGChain POSTROUTING (policy ACCEPT 6 packets,312 bytes) pkts bytes target     prot opt in     out     source               destination  199 16466 MASQUERADE  all  --  *      eth0    10.0.0.0/16          0.0.0.0/0

AWS安全组配置正常,允许此测试用例所需的各种访问.

故障排除:

我可以通过端口22从NAT远程登录到服务器A.所以Access很好.

当我在笔记本电脑上运行telnet 54.213.116.251 2222时,我在NAT上的tcpdump中看到以下条目:

NAT# tcpdump -n -i eth0 dst 10.0.1.243 and port 2209:59:13.738316 IP xxx.xxx.xxx.xxx.51709 > 10.0.1.243.ssh: Flags [S],seq 1868541786,win 8192,options [mss 1460,nop,wscale 2,sackOK],length 009:59:16.737009 IP xxx.xxx.xxx.xxx.51709 > 10.0.1.243.ssh: Flags [S],length 009:59:22.775567 IP xxx.xxx.xxx.xxx.51709 > 10.0.1.243.ssh: Flags [S],length 0

所以这意味着iptables将数据包路由到10.0.1.243. (BTW,xxx.xxx.xxx.xxx是我笔记本电脑的公共IP地址)

但是当我在服务器A上运行tcpdump时,我看不到任何来自10.0.0.54的内容,这是NAT的内部/私有IP地址(我认为这是问题):

Server A# tcpdump  -n src 10.0.0.54tcpdump: verbose output suppressed,use -v or -vv for full protocol decodeListening on eth0,link-type EN10MB (Ethernet),capture size 65535 bytes

但是如果我从NAT实例telnet到服务器A,我在服务器A上的tcpdump中看到了好东西(这意味着,我的整体PREROUTING规则没有按预期工作):

Server A# tcpdump  -n src 10.0.0.5405:01:47.500080 IP 10.0.0.54.44627 > 10.0.1.243.ssh: Flags [S],seq 2862522431,win 14600,sackOK,TS val 3013083 ecr 0,wscale 7],length 005:01:47.501601 IP 10.0.0.54.44627 > 10.0.1.243.ssh: Flags [.],ack 760676524,win 115,options [nop,TS val 3013083 ecr 12074896],length 005:01:47.535720 IP 10.0.0.54.44627 > 10.0.1.243.ssh: Flags [.],ack 22,TS val 3013092 ecr 12074928],length 0

结论:

从NAT上的tcpdump输出,似乎Iptables正在转发我的数据包.

从服务器A上的TCP转储,我有从NAT到服务器A的良好连接.

但在端到端,我无法从笔记本电脑连接到服务器A.

(顺便说一句,我知道SSH隧道和其他好东西.但我只想让Iptables来帮助我.)

@H_502_53@解决方法 最后,我破解了!!!!

在NAT实例上,我不得不更改以下命令:

从:

iptables -t nat -A POSTROUTING -o eth0 -s 10.0.0.0/16 -j MASQUERADE

至:

iptables -t nat -A POSTROUTING -j MASQUERADE

它工作了!!!!

因此,我将很快在ServerFault上创建一个新问题,询问使用上述两个命令有哪些优缺点.

总结

以上是内存溢出为你收集整理的linux – AWS VPC IPtables NAT:端口转发无法正常工作全部内容,希望文章能够帮你解决linux – AWS VPC IPtables NAT:端口转发无法正常工作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1045299.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存