在这个场景中有三台机器:
所有的机器都有 Ubuntu 11.04(桌面 A 是 64 位的)并且有 openssh-server 和 openssh-client。
现在,当我尝试将台式机 A 连接到笔记本电脑 A 或反之亦然时,ssh user@1.23.y.y我收到错误消息
port 22: No route to host
Run Code Online (Sandbox Code Playgroud)
在这两种情况下。
我拥有这两台机器,现在如果我从我朋友的机器上尝试相同的命令,即通过桌面 B,我可以访问我的笔记本电脑和桌面。但是,如果我尝试从我的笔记本电脑或台式机访问桌面 B,我会得到
port 22: Connection timed out
Run Code Online (Sandbox Code Playgroud)
我什至尝试更改 ssh 端口号。在ssh_config文件中但没有成功。
注意:“笔记本电脑 A”使用 WiFi 连接,而“机器 A”使用以太网连接,而“机器 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)
Run Code Online (Sandbox Code Playgroud)
桌面
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
Run Code Online (Sandbox Code Playgroud)
输出 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
Run Code Online (Sandbox Code Playgroud)
输出 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
Run Code Online (Sandbox Code Playgroud)
Lek*_*eyn 22
路线看起来不错。我将假设这些 IP 地址是私有的 (LAN) 并且不可公开访问。
由于您以不同的方式连接到网络(wifi/有线),您的路由器很可能将有线/无线网络分开。尝试通过有线(或无线)连接将它们连接起来。另一种可能性是 Ubuntu 机器上的防火墙阻止了连接。
否则,请将您的路由器配置为使用相同的网络(子网)进行无线和有线连接。还要确保路由器不会阻止客户端到客户端的通信。
您的路由器可能会丢弃所有未经请求的数据包,这就是您的朋友在您的公共 IP 地址上收到“连接超时”消息的原因。配置NAT端口转发,让公网IP地址+端口组合转发到你的局域网地址。
示例网络:
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
Run Code Online (Sandbox Code Playgroud)
在路由器 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
Run Code Online (Sandbox Code Playgroud)
如果您在设置的计算机上安装了防火墙 ( ufw, iptables, ...),请允许传入流量到达端口 22(台式机 A)和端口 2222(笔记本电脑 A)。
现在可以使用 SSH 访问桌面:
ssh user@198.51.100.1 -p 22
Run Code Online (Sandbox Code Playgroud)
现在可以使用 SSH 访问笔记本电脑:
ssh user@198.51.100.1 -p 2222
Run Code Online (Sandbox Code Playgroud)
如果您想访问您朋友的机器,请将这些说明应用于他的机器 + 路由器。
| 归档时间: |
|
| 查看次数: |
363922 次 |
| 最近记录: |