SSH Connection Error: Tidak ada rute ke host

34

Ada tiga mesin dalam skenario ini:

Semua mesin memiliki Ubuntu 11.04 (Desktop A adalah 64bit) dan memiliki openssh-server dan openssh-client.

Sekarang ketika saya mencoba untuk menghubungkan Desktop A ke Laptop A atau sebaliknya oleh ssh [email protected]saya mendapatkan kesalahan

port 22: No route to host

dalam kedua kasus tersebut.

Saya memiliki kedua mesin, sekarang jika saya mencoba perintah yang sama dari mesin teman saya, yaitu melalui Desktop B, saya dapat mengakses Laptop dan Desktop saya. Tetapi jika saya mencoba mengakses Desktop B dari Laptop saya atau dengan Desktop saya dapatkan

port 22: Connection timed out

Saya bahkan mencoba mengubah port ssh no. dalam ssh_configfile tetapi tidak berhasil.

Catatan : bahwa 'Laptop A' menggunakan koneksi WiFi sementara 'Mesin A' menggunakan Koneksi Ethernet dan 'Mesin B' ada di jaringan yang sama sekali berbeda.

@Lekensteyn Ini dia ->

Laptop A && Desktop A -> Router / Nano_Rcvr disediakan oleh ISP kepada saya. Jadi untuk satu Router, dua Mesin terhubung dan dapat diakses pada saat yang sama. di sini adalah output ifconfig saya untuk kedua mesin: - 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)

Desktop

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 

Output dari 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 

Output dari 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
Nihar Sawant
sumber
Harap perbaiki alamat IP tersebut. Apakah 1.23.xx alamat IP publik? Jika tidak, silakan gunakan 10.xxx, 192.168.xx atau 172.16.xx Bisakah Anda melakukan ping ke komputer lain? ping 192.168.x.x
Lekensteyn
Kedengarannya aneh tapi ini IP Addr publik jika Anda mau, saya bisa memberikan Anda output 'ifconfig'. Tidak, saya tidak bisa Ping kedua mesin saya itu mengatakan 'Host Host Unrechable' Meskipun saya bisa ping mesin teman saya
Nihar Sawant
1
Bisakah Anda menggambar pengaturan jaringan Anda? Seni ASCII akan baik-baik saja. Anda perlu memasukkan mesin, "internet" dan router / modem (rumah) yang terlibat.
Lekensteyn
2
Saya setuju dengan @Lekensteyn. Masalah-masalah ini biasanya adalah masalah NAT / penerusan. Jelaskan struktur jaringan Anda dan kami mungkin dapat membantu.
Oli
@Lekensteyn, lihat Postingan saya yang diperbarui
Nihar Sawant

Jawaban:

18

Rute terlihat baik-baik saja. Saya akan berasumsi bahwa alamat IP tersebut adalah alamat pribadi (LAN) dan tidak dapat diakses publik.

Karena Anda terhubung dengan berbagai cara ke jaringan (wifi / kabel), kemungkinan besar router Anda telah memisahkan jaringan kabel / nirkabel. Coba hubungkan keduanya pada koneksi kabel (atau nirkabel). Kemungkinan lain adalah bahwa firewall pada mesin Ubuntu memblokir koneksi.

Jika tidak, konfigurasikan router Anda untuk menggunakan jaringan (subnet) yang sama untuk koneksi nirkabel dan kabel. Pastikan juga bahwa router tidak memblokir komunikasi antar klien.

Router Anda mungkin menjatuhkan semua paket yang tidak diminta, karena itu teman Anda mendapat pesan "time out time out" pada alamat IP publik Anda. Konfigurasikan penerusan port NAT sehingga kombinasi alamat IP publik + port meneruskan ke alamat LAN Anda.

Contoh jaringan:

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

Pada Router A , atur penerusan 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

Jika Anda memiliki firewall ( ufw,, iptables...) pada set mesin, izinkan lalu lintas masuk ke port 22 (Desktop A) dan port 2222 (Laptop A).

Desktop sekarang dapat diakses menggunakan SSH dengan:

ssh [email protected] -p 22

Laptop sekarang dapat diakses menggunakan SSH dengan:

ssh [email protected] -p 2222

Jika Anda ingin mengakses mesin teman Anda, terapkan instruksi ini ke mesin + router-nya.

Lekensteyn
sumber
3

Saya punya masalah serupa. Satu mesin di kawat satu nirkabel. Saya menemukan kotak centang di router saya selain "ips terpisah untuk lan dan wlan" dan mencentangnya. Sekarang saya bisa masuk ke komputer wireles. Sebelum itu saya mendapat pesan kesalahan "Tidak ada rute ke host".

smev9
sumber
1

Centang kotak centang ssh saat memasang RHEL. Saya tidak memeriksanya dan menyebabkan masalah yang sama. Silakan periksa parameter itu

Mayur Sawant
sumber
1

Saya mendapatkan masalah yang sama sendiri sekarang di vps, dan itu benar-benar aneh, tidak pernah melihat yang seperti itu.

Saya adalah admin server yang berpengalaman dan kesalahan semacam ini biasanya terpotong dan kering.

Tidak ada rute ke host berarti server tidak tahu cara merutekan paket (tabel routing, namun saya belum pernah melihatnya hanya terjadi pada satu protokol dan bukan yang lain).

Dalam hal ini.

Tidak ada koneksi Internet NAT. Tidak ada IPTABLES Ping berfungsi, saya dapat terhubung ke ip di kedua sisi dari ip yang rusak. Ip rusak mengatakan "tidak ada rute untuk menjadi tuan rumah" pada port tcp.

Ini menunjukkan sesuatu di tengah mengembalikan kode kesalahan atau bug di OS dengan tabel routing.

Perhatikan kesalahannya instan, bukan penundaan yang berarti penolakan itu lokal. Tapi hanya itu yang bisa saya diagnosa.

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
ChrisC79
sumber
0

Saya anehnya akan mendapatkan kesalahan ini bahkan setelah berhasil menjalankan SSH antara PC saya dan raspberry Pi. Apa yang memperbaikinya bagi saya adalah mematikan dan menghidupkan wifi (baik klien dan tuan rumah), memulai ulang terminal Anda dan menggunakan alamat ip baru.

Josh
sumber
0

Dalam kasus saya ada jaringan Docker pada CIDR yang sama dengan VPN saya.

Saya menggunakan perintah berikut untuk mencari tahu jaringan mana, dan kemudian saya menghapusnya:

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

Setelah itu bekerja dengan baik.

M.Vanderlee
sumber
-3

Jika Anda telah mengubah / mengganti perangkat hard drive Anda kemudian mencoba menghapus hostkey dari file .ssh / known_hosts kemudian coba sambungkan lagi.

Ratiranjan Kar
sumber
1
-1. Ini sama sekali tidak ada hubungannya dengan kedua kesalahan koneksi seperti yang diberikan dalam pertanyaan ('Tidak ada rute ke host', 'Waktu habis koneksi').
gertvdijk
Hmm, saya tahu tetapi kadang-kadang menghapus hostkey dan menambahkan lagi berfungsi.
Ratiranjan Kar