Lỗi kết nối SSH: Không có tuyến đường đến máy chủ


34

Có ba máy trong kịch bản này:

  • Máy tính để bàn A: user@1.23.xx
  • Máy tính xách tay A: user@1.23.yy
  • Máy B: user@192.168.zz

Tất cả các máy đều có Ubuntu 11.04 (Máy tính để bàn A là 64 bit) và có cả máy chủ openssh và máy khách openssh.

Bây giờ khi tôi cố gắng kết nối Máy tính A với Máy tính xách tay A hoặc ngược lại, ssh user@1.23.y.ytôi gặp lỗi như

port 22: No route to host

trong cả hai trường hợp.

Tôi sở hữu cả hai máy, bây giờ nếu tôi thử các lệnh tương tự từ máy của bạn tôi, tức là thông qua Desktop B, tôi có thể truy cập cả Máy tính xách tay và Máy tính để bàn của mình. Nhưng nếu tôi cố gắng truy cập Desktop B từ Laptop hoặc bằng Desktop thì tôi nhận được

port 22: Connection timed out

Tôi thậm chí đã thử thay đổi cổng ssh không. trong ssh_confighồ sơ nhưng không thành công.

Lưu ý : rằng 'Máy tính xách tay A' sử dụng kết nối WiFi trong khi 'Máy A' sử dụng kết nối Ethernet và 'Máy B' nằm trên một mạng hoàn toàn khác.

@Lekensteyn Đây rồi ->

Máy tính xách tay A && Máy tính để bàn A -> Bộ định tuyến / Nano_Rcvr do ISP cung cấp cho tôi. Vì vậy, với một Bộ định tuyến, hai Máy được kết nối và có thể được truy cập cùng một lúc. đây là đầu ra ifconfig của tôi cho cả hai máy: - Laptop

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)

Máy tính để bàn

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 

Đầu ra của 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 

Đầu ra của 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

Vui lòng sửa các địa chỉ IP đó. Là 1.23.xx một địa chỉ IP công cộng? Nếu không, vui lòng sử dụng 10.xxx, 192.168.xx hoặc 172.16.xx Bạn có thể ping các máy khác không? ping 192.168.x.x
Lekensteyn

Nghe có vẻ lạ nhưng đó là một Addr IP công khai nếu bạn muốn tôi có thể cung cấp cho bạn đầu ra 'ifconfig'. Không, tôi không thể Ping cả hai máy của mình, nó nói 'Máy chủ đích không thể nhận được' Mặc dù tôi có thể ping máy của bạn tôi
Nihar Sawant

1
Bạn có thể vẽ thiết lập mạng của bạn? Nghệ thuật ASCII sẽ ổn. Bạn cần bao gồm các máy, bộ định tuyến / modem "internet" và các bộ định tuyến / modem có liên quan.
Lekensteyn

2
Tôi đồng ý với @Lekensteyn. Những vấn đề này phổ biến nhất là các vấn đề NAT / chuyển tiếp. Giải thích cấu trúc mạng của bạn và chúng tôi có thể giúp đỡ.
Oli

@Lekensteyn kiểm tra Bài đăng cập nhật của tôi
Nihar Sawant

Câu trả lời:


18

Các tuyến đường nhìn tốt. Tôi sẽ cho rằng các địa chỉ IP đó là địa chỉ riêng (LAN) và không thể truy cập công khai.

Vì bạn được kết nối theo các cách khác nhau với mạng (wifi / có dây), rất có thể bộ định tuyến của bạn đã tách các mạng có dây / không dây. Hãy thử kết nối cả hai trên kết nối có dây (hoặc không dây). Một khả năng khác là tường lửa trên các máy Ubuntu đang chặn các kết nối.

Nếu không, hãy định cấu hình bộ định tuyến của bạn để sử dụng cùng một mạng (mạng con) cho các kết nối không dây và có dây. Cũng đảm bảo rằng bộ định tuyến không chặn giao tiếp giữa khách và khách.

Bộ định tuyến của bạn có thể bỏ tất cả các gói không được yêu cầu, đó là lý do tại sao bạn của bạn nhận được thông báo "hết thời gian kết nối" trên địa chỉ IP công cộng của bạn. Định cấu hình chuyển tiếp cổng NAT để kết hợp địa chỉ IP công cộng + cổng chuyển tiếp đến địa chỉ LAN của bạn.

Mạng ví dụ:

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

Trên Bộ định tuyến A , thiết lập chuyển tiếp 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

Nếu bạn đã cài đặt tường lửa ( ufw,, iptables...) trên các máy, hãy cho phép lưu lượng truy cập đến cổng 22 (Máy tính để bàn A) và cổng 2222 (Máy tính xách tay A).

Bây giờ máy tính để bàn có thể được truy cập bằng SSH với:

ssh user@198.51.100.1 -p 22

Máy tính xách tay hiện có thể được truy cập bằng SSH với:

ssh user@198.51.100.1 -p 2222

Nếu bạn muốn truy cập vào máy của bạn bè, hãy áp dụng các hướng dẫn này cho máy + bộ định tuyến của anh ấy.


3

Tôi đã có một vấn đề tương tự. Một máy trên dây một không dây. Tôi tìm thấy một tickbox trong bộ định tuyến của mình bên cạnh "tách ips cho lan và wlan" và đánh dấu nó. Bây giờ tôi có thể đăng nhập vào máy tính wirele. Trước đó tôi đã nhận được thông báo lỗi "Không có tuyến đến máy chủ".


1

Kiểm tra hộp kiểm ssh trong khi cài đặt RHEL. Tôi đã không kiểm tra nó và gây ra vấn đề tương tự. Vui lòng kiểm tra tham số đó


1

Bây giờ tôi cũng gặp vấn đề tương tự trên một vps, và nó hoàn toàn kỳ lạ, chưa bao giờ thấy bất cứ điều gì giống như vậy.

Tôi là một quản trị viên máy chủ có kinh nghiệm và loại lỗi này thường bị cắt và khô.

Không có tuyến đến máy chủ nghĩa là máy chủ không biết cách định tuyến gói (bảng định tuyến, tuy nhiên tôi chưa bao giờ thấy nó chỉ xảy ra trên một giao thức chứ không phải giao thức khác).

Trong trường hợp của tôi.

Không có kết nối Internet NAT. Không có IPTABLES Ping hoạt động Tôi có thể kết nối với một trong hai bên của ip bị hỏng. IP bị hỏng nói "không có tuyến đến máy chủ" trên bất kỳ cổng tcp nào.

Điều này cho thấy một cái gì đó ở giữa đang trả về mã lỗi hoặc lỗi trong HĐH với bảng định tuyến.

Lưu ý lỗi là tức thời, không phải là sự chậm trễ có nghĩa là từ chối là cục bộ. Nhưng đó là tất cả những gì tôi có thể chẩn đoán.

root@vps1 network # telnet 83.149.xx.xx 23
Trying 83.149.xx.xx...
telnet: Unable to connect to remote host: No route to host
root@vps1 network # telnet 83.149.xx.xx 80
Trying 83.149.xx.xx...
telnet: Unable to connect to remote host: No route to host
root@vps1 network # ping 83.149.xx.xx
PING 83.149.xx.xx (83.149.xx.xx) 56(84) bytes of data.
64 bytes from 83.149.xx.xx: icmp_seq=1 ttl=56 time=8.89 ms
64 bytes from 83.149.xx.xx: icmp_seq=2 ttl=56 time=7.93 ms

0

Tôi sẽ nhận được lỗi này một cách kỳ lạ ngay cả sau khi chạy thành công SSH giữa PC và raspberry Pi. Điều sửa lỗi cho tôi là tắt và bật wifi (cả máy khách và máy chủ), khởi động lại thiết bị đầu cuối của bạn và sử dụng địa chỉ IP mới.


0

Trong trường hợp của tôi, có một mạng Docker trên cùng CIDR với VPN của tôi.

Tôi đã sử dụng lệnh sau để tìm ra mạng nào, và sau đó tôi loại bỏ nó:

docker inspect $(docker network ls -q) | jq '.[] | {name: .Name, cidr: .IPAM.Config[0].Subnet}'

Sau đó nó hoạt động tốt.


-3

Nếu bạn đã thay đổi / thay thế ổ cứng hệ thống của mình, hãy thử xóa khóa máy chủ khỏi tệp .ssh / know_hosts sau đó thử kết nối lại.


1
-1. Điều này hoàn toàn không liên quan gì đến cả hai lỗi kết nối như được nêu trong câu hỏi ('Không có tuyến đến máy chủ', 'Đã hết thời gian kết nối').
gertvdijk

Hmm, tôi biết nhưng đôi khi loại bỏ hostkey và thêm lại hoạt động.
Ratiranjan Kar
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.