har*_*ari 8 freebsd ssh port-forwarding sshd
这是ssh 端口转发的扩展,可以从任何地方访问我的家用机器
我尝试了那里提到的事情,但我无法ssh
使用我的机器。
用于端口转发的 Netgear 路由器设置:
Start Port: 22
End Port: 22
Server IP Address: IP address of by FreeBSD box
Run Code Online (Sandbox Code Playgroud)
/etc/ssh/sshd_conf
我的 FreeBSD 盒子:
PasswordAuthentication yes
AllowUsers root
X11Forwarding yes
AllowTcpForwarding yes
Run Code Online (Sandbox Code Playgroud)
我如何尝试连接:
我已经注册dyndns.com
并获得了一个映射到我的外部 IP 地址的 URL。
在我家庭网络中的另一台机器上,我这样做:
ssh -l root my_dyndns_ip
这只是超时。
另一方面,我可以my_dyndns_url
成功ping通。
调试:
我该如何解决这个问题,以便我可以ssh
从任何地方到达my_dnydns_url
?
我试图查看我的 Netgear 路由器的日志,但是在 ssh 尝试失败时,路由器上没有生成登录。
我也调查过,/var/log/messages
但找不到任何东西。
编辑:0 以详细模式运行 ssh(按照@jasonwryan 的建议):
我注意到一件奇怪的事情:当我对 dyndns.com 提供的 url 执行 ssh 时,它试图连接到其他 IP 地址,而不是我从 whatismyip.com 获得的 IP 地址。是不是错了?
编辑:1 dyndns 的问题现已解决。
现在,当我尝试 ssh 时,它超时并出现错误:连接超时
编辑:2 iptables 或 NAT 与它有什么关系?
编辑:3
,我开始ssh
跟-d option
来捕获调试消息。
当我从 wlan 中的任何其他机器 ssh 到 freebsd 框时,它工作正常,我可以看到日志。
但是当我 ssh 到外部 ip(应该将它转发到我的 freebsd 框)时,我什至看不到任何日志 - 这意味着请求甚至没有到达 freebsd 框。它超时了。
我认为您的问题不在于端口转发,而是路由器中 NAT 配置中的另一个选项。
首先,确保如果您使用您的 LAN IP,您可以从网络上的另一台机器成功 SSH。这确保了 SSH 可以正常工作。
其次,使用公共 IP从网络外的另一台机器进行测试。这可确保端口转发正常工作。
第三,在网络外的同一台机器上进行测试并使用 DynDNS URL。这可确保 DynDNS 正常工作。
如果所有这些都成功,那么您的配置就没有问题(我假设它是正确的)并且您的问题只是从网络内部访问公共 IP(直接或通过 DynDNS)。这意味着您的路由器需要启用NAT 反射(如果可能)以路由内部请求,就好像它们是对公共 IP 的外部请求一样。
您的 sshd 服务器是否正在侦听端口 22,请尝试添加:
Port 22
Run Code Online (Sandbox Code Playgroud)
到你的配置。
如果这不起作用,请尝试转发高于 1024 的端口(某些 ISP 不允许在低于 1024 的端口上传输非商业订阅者流量)。另外,请确保如果您这样做,您会更改我刚刚告诉您的conf中的行以反映相同的值。
归档时间: |
|
查看次数: |
5263 次 |
最近记录: |