问题描述
在这种情况下有三台计算机:
-
桌面A:user@1.23.x.x
-
笔记本电脑A:user@1.23.y.y
-
机器B:user@192.168.z.z
所有机器都具有Ubuntu 11.04(台式机A是64位),并且都具有openssh-server和openssh-client。
现在,当我尝试通过ssh user@1.23.y.y
将台式机A连接到笔记本电脑A时,反之亦然,
port 22: No route to host
在这两种情况下。
我拥有这两台计算机,现在,如果我尝试通过朋友的计算机(即通过台式机B)执行相同的命令,则可以同时访问我的笔记本电脑和台式机。但是,如果我尝试从笔记本电脑或通过台式机访问台式机B,我会得到
port 22: Connection timed out
我什至尝试更改ssh端口号。在ssh_config
文件中,但没有成功。
注意:’Laptop A’使用WiFi连接,而’Machine A’使用以太网连接,而’Machine B’使用完全不同的网络。
@Lekensteyn这是->
笔记本电脑A&&桌面A-> ISP提供给我的路由器/Nano_Rcvr。因此,将两个计算机连接到一个路由器,并且可以同时对其进行访问。这是两台机器的我的ifconfig输出:-笔记本电脑
wlan0
Link encap:Ethernet HWaddr X:X:X:X:00:bc
inet addr:1.23.73.111 Bcast:1.23.95.255 Mask:255.255.224.0
inet6 addr: fe80::219:e3ff:fe04:bc/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:108409 errors:0 dropped:0 overruns:0 frame:0
TX packets:82523 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:44974080 (44.9 MB) TX bytes:22973031 (22.9 MB)
桌面
eth0
Link encap:Ethernet HWaddr X:X:X:X:c5:78
inet addr:1.23.68.209 Bcast:1.23.95.255 Mask:255.255.224.0
inet6 addr: fe80::227:eff:fe04:c578/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:10380 errors:0 dropped:0 overruns:0 frame:0
TX packets:4509 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1790366 (1.7 MB) TX bytes:852877 (852.8 KB)
Interrupt:43 Base address:0x2000
ip route show
的输出
1.23.64.0/19 dev wlan0 proto kernel scope link src 1.23.73.111 metric 2
169.254.0.0/16 dev wlan0 scope link metric 1000
traceroute -n 1.23.73.111
的输出
traceroute to 1.23.73.111 (1.23.73.111), 30 hops max, 60 byte packets
1 1.23.68.209 3008.787 ms !H 3008.786 ms !H 3008.784 ms !H
最佳解决办法
路线看起来不错。我将假定这些IP地址是私有IP(LAN),并且不能公共访问。
由于您以不同的方式连接到网络(WiFi /有线),因此您的路由器很可能已经分开了有线/无线网络。尝试通过有线(或无线)连接将它们都连接。另一种可能性是Ubuntu计算机上的防火墙阻止了连接。
否则,将路由器配置为使用相同的网络(子网)进行无线和有线连接。还要确保路由器不会阻止client-to-client通信。
您的路由器可能会丢弃所有不请自来的数据包,这就是为什么您的朋友在您的公共IP地址上收到“连接超时”消息的原因。配置NAT端口转发,以便公共IP地址和端口组合转发到您的LAN地址。
示例网络:
YOUR NETWORK (A)
Router A (public address: 198.51.100.1)
Desktop A - 10.0.0.2
Laptop A - 10.0.0.3
YOUR FRIENDS NETWORK (B)
Router B (public address: 203.0.113.1)
Machine B - 192.168.0.2
在路由器A上,设置NAT转发:
To make your desktop accessible:
forward the public port 22 to 10.0.0.2
To make your laptop accessible:
forward the public port 2222 to 10.0.0.3
如果您的计算机组上有防火墙(ufw
,iptables
,…),则允许进入端口22(桌面A)和端口2222(笔记本电脑A)的传入通信。
现在可以使用SSH通过以下方式访问桌面:
ssh user@198.51.100.1 -p 22
现在可以使用SSH通过以下方式访问笔记本电脑:
ssh user@198.51.100.1 -p 2222
如果要访问您的朋友机器,请将这些说明应用于他的机器+路由器。
次佳解决办法
我有一个类似的问题。一台机器有线一无线。我在路由器中找到一个复选框,除了“用于lan和wlan的单独ips”外,还勾选了该复选框。现在我可以登录无线计算机。在此之前,我收到错误消息“主机没有路由”。