linux - 使用端口转发 SSH 连接到本地服务器?

标签 linux ubuntu ssh port iptables

我有 2 台服务器,都运行 Ubuntu 14.04。他们之间有本地网络,只有第一台服务器有公共(public) IP,但第二台没有。

我的问题:我想使用 SSH 访问我的第二台机器。目前,我通过 SSH 连接到我的第一台机器,然后从那里我通过 SSH 连接到第二台机器。有没有办法将特定端口从第一台机器重定向到第二台机器?我的意思是,将特定的传入端口重定向到我的第二台服务器的本地 ip。

示例:

ssh user_at_first_machine@first_machine.com -p 22     # ssh-ing to 1st machine
ssh user_at_second_machine@first_machine.com -p 2222  # ssh-ing to 2nd machine

最佳答案

是的,您可以在第一台服务器上进行 NAT。

    iptables -t nat -I PREROUTING -d <public ip> -p tcp --dport 2222 -j DNAT --to <ip of server 2≥:22

要工作,您需要在服务器 1 上启用转发包:

    sysctl -w net.ipv4.ip_forward=1

要持久化它,请在 /etc/sysctl.conf 中添加以下内容:

    net.ipv4.ip_forwarding = 1

并确保服务器 1 的防火墙允许流量。

关于linux - 使用端口转发 SSH 连接到本地服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27993442/

相关文章:

c++ - 使用 Codeblocks 和 Cmake Linux 编译 GLFW

c - 从多个线程读取 int 是否安全?

linux - 在终端中创建的应用程序未显示在 Eclipse 中

linux - cpio 在为 live 重新打包 initrd.lz 时工作不正常

git - 在生产服务器上使用Jenkins进行部署的最佳方法

c -/usr/include/unistd.h 和 limit.h 来自 glibc 或内核

postgresql - 修改pg_hba.conf

scala - FIRRTL 存储库下载失败

macos - 允许守护进程用户 SSH 登录 key

networking - 如何远程控制嵌入式设备