【问题标题】:Opening a custom port on AWS在 AWS 上打开自定义端口
【发布时间】:2016-10-06 11:31:25
【问题描述】:

我正在配置一个 NAT 实例,它应该将端口 2222 上的所有传入请求重定向到我的虚拟私有云上私有子网中服务器的端口 22,因此我可以通过 SSH 直接连接到我的私有实例。我在 NAT 实例的安全组上打开了 2222 端口,在我的私有实例的安全组上打开了 22 端口,并添加了

/etc/ssh/sshd_config

以下几行:

Port 22
Port 2222

NAT 实例上的 nmap 显示端口 2222 已打开:

PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
111/tcp  open  rpcbind
2222/tcp open  EtherNet/IP-1

我还在我的 NAT 实例上添加了以下 iptables 规则,因此端口 2222 上的任何包都应重定向到 10.0.2.18:22(10.0.2.18 是私有实例 IP):

sudo iptables -t nat -A PREROUTING -p tcp --dport 2222 -j DNAT --to-destination 10.0.2.18:22

问题是我无法到达我的 NAT 实例的端口 2222,如果我尝试这个:

ssh -p 2222 -i mykey.pem ec2-user@my_nat_ip

或者这个:

nc -zv my_nat_ip 2222

连接超时。

提前感谢任何帮助。

【问题讨论】:

  • 您可以粘贴您的 NAT 实例的安全组规则吗?
  • 在 ssh_config 中只保留线 Port 2222 删除线 Port 22 并检查
  • 查看我的第二条评论你试过了吗?
  • pastebin.com/r1D9QtPW 这是我的安全组详细信息
  • 我已经尝试删除端口 22,只留下端口 2222,但它仍然无法正常工作。我也遇到了连接超时。

标签: amazon-web-services ssh port firewall iptables


【解决方案1】:

您需要检查几件事(假设您已经排除了安全组):

  • 检查您是否没有拒绝网络 ACL (NACL) 上的流量。

  • 检查您的私有子网的路由表是否正在向 NAT 实例发送流量。

  • 检查您是否在 NAT 实例上禁用了Source/Destination Check

此外,您可能希望在您的 VPC 上启用 VPC 流日志,以帮助您找到这些数据包可能被丢弃的位置。

然后,另一个建议:您可能需要考虑端口转发的替代方案,因为这基本上会将私有子网中的实例暴露给危险的互联网。一种常见的方法是拥有通常称为堡垒主机的东西。或跳转主机。有些人为此目的使用 NAT 实例。一些方法包括:(1)使用 SSH 本地端口转发; (2)使用SSH动态代理; (3) 在您的 SSH 客户端上使用 ProxyCommand 选项。 StackOverflow 和其他 StackExchange 网站上有很多关于所有这些主题的问题的解答,您一定会找到很多方法!

【讨论】:

  • 我会验证这一点。问题是我需要以某种方式从我的私有子网访问互联网。我正在使用 NAT 实例,因为有了它,我可以允许入站(用于 ssh)和出站流量来获取软件更新。所以在另一种情况下,例如,使用堡垒主机,我需要至少配置一个 NAT 网关,因此我可以从我的私有子网连接到互联网。您认为这是一个好的解决方案吗?
猜你喜欢
  • 1970-01-01
  • 2020-05-17
  • 2019-08-07
  • 2020-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-10
相关资源
最近更新 更多