我正试图让我自己的networking服务器启动。 我已经安装了一个新的Ubuntu服务器和openSSH的副本。
我可以通过使用内部IP(192.168.1.12)到服务器的SSH,但无法通过我的外部IP地址访问它。 我已经设置了端口转发,但仍然从腻子中获得“连接拒绝”。
我注意到的一件事是,如果我login到我的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.
我猜这是我的问题试图使用我的外部地址ssh的原因? 我试图禁用ipv6,但只有一个错误是固定的,当我这样做
编辑: netstat -tan | grep LIST
netstat -tan | grep LIST
给出以下结果
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp6 0 0 :::22 :::* LISTEN
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
sshd已经在运行了,如你的netstat所certificate的那样。 它也绑定到所有IP(netstat中的0.0.0.0),所以在那里应该没有问题。
你的路由器上有防火墙吗? 您可能启用了端口转发function,但是防火墙可能仍然会丢弃端口转发function。也有可能您的ISP在连接到您之前阻止了22。 我也会做一个iptables -F(放下所有的iptables规则)来确定; 他们会在重新启动时返回(或者您可以使用iptables-restore来恢复它们)。
您可以通过检查/var/log/auth.log
确认sshd不拒绝连接。
如果您确认您的日志中没有拒绝连接,并且路由器上没有防火墙,那么我build议您更改SSH以使用22以外的端口(随机高端口> 1024)。 你可以通过编辑/etc/ssh/ssh_config
并将“Port 22”更改为更高的值。
编辑:从评论更新保存读取; 在这种情况下,您也应该尝试从networking外的IP进行检查。 在这种情况下,ISP阻塞了端口22,并且在内部连接到高端口(指定外部IP)不起作用,可能是由于缺less发夹式NAT。
已经使用的地址通常意味着一些服务已经在问题的端口上运行,即, 22? 你有没有检查监听服务? 你可以倾倒吗?
netstat -tan | grep LIST