我正在尝试启动我自己的 Web 服务器。我已经安装了 ubuntu 服务器和 openSSH 的新副本。
我可以通过使用内部 IP (192.168.1.12) SSH 进入服务器,但无法通过我的外部 IP 地址访问它。我已经设置了端口转发,但仍然从腻子中得到“连接被拒绝”。
我注意到的一件事是,如果我登录到我的 Web 服务器并键入,sudo /usr/sbin/sshd -d我会收到以下错误:
debug1: Bind to port 22 pm 0.0.0.0
Bind to port 22 on 0.0.0.0 failed: Address already in use.
debug1: Bind to port 22 on ::.
Bind to port 22 on :: failed: Address already in use.
Run Code Online (Sandbox Code Playgroud)
我猜这是我尝试使用外部地址 ssh 时出现问题的原因?我已尝试禁用 ipv6,但执行此操作时仅修复了其中一个错误
编辑:
netstat -tan | grep LIST给出以下结果
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
Run Code Online (Sandbox Code Playgroud)
netstat -tulpn
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 620/sshd
tcp6 0 0 :::22 :::* LISTEN 620/sshd
udp 0 0 0.0.0.0:68 0.0.0.0:* 604/dhclient3
Run Code Online (Sandbox Code Playgroud)
sshd 已经在运行,正如您的 netstat 所证明的那样。它也绑定到所有 IP(netstat 中的 0.0.0.0),所以那里应该没有问题。
你的路由器有防火墙吗?您可能启用了端口转发,但防火墙可能仍在丢弃 22。也有可能您的 ISP 在 22 到达您之前阻止了它。我也会做一个 iptables -F(删除所有 iptables 规则)以确保;它们将在重新启动时返回(或者您可以使用 iptables-restore 恢复它们)。
您可以通过检查被拒绝的连接来确认 sshd 没有/var/log/auth.log拒绝连接。
如果您确认您的日志中没有拒绝的连接并且路由器上没有防火墙,那么我建议更改 SSH 以使用 22 以外的端口(随机高端口 > 1024)。您可以通过编辑/etc/ssh/ssh_config并将“端口 22”更改为更高的值来实现。
编辑:从评论更新以保存阅读;在这种情况下,您还应该尝试从网络外部的 IP 进行检查。在这种情况下,ISP 阻止了端口 22,并且内部连接到高端口(指定外部 IP)不起作用,可能是由于缺少发夹式 NAT。
| 归档时间: |
|
| 查看次数: |
61876 次 |
| 最近记录: |