我设置了一个家庭服务器来玩。我没有记住 IP 地址,而是在我的 hostmonster 个人网站上创建了一个子域名(http://子域名.域名.com) 并将其重定向到我家里的服务器。
在我家的路由器防火墙上,我转发了端口 80 和 22,以允许 Web 和 ssh 访问该服务器。
但是,我的网络主机似乎转发了端口 80 请求,但没有转发 ssh 请求。我在注意到以下情况后得出了这个结论:
当我访问http://子域名.域名.com我成功查看了托管在我家服务器上的网页。但是,当我 ssh 进入[电子邮件保护]我无法验证身份。通过 ssh 进入 homeusername@homeIP 可以正常工作。
我还发现 ssh 进入[电子邮件保护]将成功 ssh 到我的网络帐户。
有人知道我如何设置这种“ssh 转发”吗?
提前致谢,
答案1
您需要进入域名服务器,为子域名创建指向您家庭 IP 的 A 记录。如果您家中没有静态 IP,则需要设置动态 DNS。Google 上有许多动态 DNS 提供商;找到您喜欢的一个。
您的问题的关键部分是您“重定向”了子域名以指向您家中的服务器。我假设您使用了类似 HTTP 刷新标头的东西。当您尝试通过重定向访问您的家庭服务器时,流程如下:
- 你在端口 80 上发送请求
- Hostmonster 服务器在端口 80 接收请求
- Apache 服务器看到重定向,并转发到重定向的端口 80
- 您的请求通过端口 80 到达您的家庭路由器
- 您的请求通过端口 80 到达您的主服务器
现在,当您尝试 ssh 进入您的家庭服务器时会发生以下情况:
- 你在端口 22 上发送请求
- Hostmonster 服务器在端口 22 接收请求
- Hostmonster 发现您的用户在服务器上不存在;访问被拒绝
不同之处在于,在端口 80 上,apache 可以看到重定向。在端口 22 上,sshd 不知道重定向,并认为您正在尝试通过 ssh 进入 Hostmonster 服务器。