如何在局域网外使用外部 IP 地址访问 openssh-server

如何在局域网外使用外部 IP 地址访问 openssh-server

我怎样才能在局域网外部使用带有外部 IP 地址的新 openssh 服务器?

目的是使局域网之外的外部计算机管理员能够通过互联网管理 openssh 服务器(root 权限、软件和数据的安装)。

技术设置:

Local Area Network = Router + openssh-server + openssh-client

openssh-server Ubuntu 14.04.1 服务器全盘加密内部 IP 111.111.111.111,互联网服务提供商提供的外部 IP 地址 222.222.222.222,路由器为这台计算机设置的两个空闲端口 22(TCP、UDP),用户 MaximGorki

openssh-client Ubuntu 14.04.1桌面全盘加密内部IP 111.111.111.110,互联网服务提供商提供的外部IP地址222.222.222.222

我能够使用路由器为 openssh-server 111.111.111.111 设置的 IP 地址从局域网 (LAN) 内的 openssh-client 登录到 openssh-server。

我想要从 openssh-server 使用命令行连接 openssh-server:

ssh [email protected]

ssh [email protected]

内部IP地址与密码配合使用。

局域网内的 openssh-client 计算机的外部 IP 地址不起作用:

ssh:连接到主机 222.222.222.222 端口 22:连接超时

我也设置了公钥功能。但是这不起作用。我不知道为什么。因此,我很乐意仅通过密码验证来访问 openssh 服务器。

我想测试 openssh-server 是否可以从外部 IP 地址使用。

我必须在哪台计算机上设置或更改什么?

我对 Linux 的了解非常有限,如果您看到答案,请提供完整的命令行语法作为示例。


根据一个答案的推荐,我在原始 iptables 中添加了 4 条规则。Iptables 现在如下所示:

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)

pkts   bytes   target   prot   opt   in    out   source

218    16703   ACCEPT   all    --    any   any   anywhere state RELATED,ESTABLISHED

0       0      ACCEPT   all    --    any   any   222.222.222.222 

0       0      ACCEPT   tcp    --    any   any   anywhere tcp dpt:22

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)

pkts   bytes   target   prot   opt   in    out   source

0      0       ACCEPT   all    --    any   any   anywhere state RELATED,ESTABLISHED

0      0       ACCEPT   all    --    any   any   anywhere state RELATED,ESTABLISHED

0      0       ACCEPT   all    --    any   any   anywhere state RELATED,ESTABLISHED

Chain OUTPUT (policy ACCEPT 10 packets, 2082 bytes)

pkts   bytes   target   prot   opt   in    out   source

答案1

我的错误是没有将 ssh_config、sshd_config 和路由器中的端口设置为相同的数字。之前,我更改了端口号。我混淆了服务器和客户端的配置文件。现在所有配置文件和路由器中的所有端口都有相同的编号。现在我可以使用外部 IP 地址从客户端访问服务器。

答案2

为此,您需要在路由器上转发您尝试连接的端口。您可以在 Google 上查找有关此操作的说明,因为不同制造商和型号的说明有很大差异。

答案3

检查 iptables 是否有防火墙限制。尝试在 Iptables 中添加以下几行,并检查是否能够通过 ssh 访问机器

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -s 222.222.222.222 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT

如果上述方法不起作用,请检查路由器设置,端口是否正确转发

答案4

您是否确保您的路由器可以(并且已启用)NAT环回/发夹?

如果不是,您无法通过外部 IP 连接到 LAN 上的设备。尝试将手机绑定到客户端,而不是使用 LAN 互联网连接进行测试。或者使用代理、VPN 或尝试从另一个网络建立连接。

相关内容