Používám Fedoru 19 a mám problém s ssh
.
Ssh je v provozu a mohu se připojit, když zadám svou IP lan. Ale když zkusím název svého serveru (blahblah.no-ip.org
) Bylo mi odmítnuto připojení. No-ip již běží jako služba a funguje správně (odesílá správnou IP).
Na routeru jsem již nastavil přesměrování portů, změnil jsem také port ssh
jak na službě, tak na přesměrování portů routeru (pro případ, že by se můj milovaný ISP rozhodl tyto porty zablokovat). Ale přesto mi bylo připojení odmítnuto a když jsem nmap
název hostitele Vidím, že port ssh je uzavřen.
Jedna věc však:mám dva počítače pod stejnou externí IP (nastavil jsem přesměrování portů na správnou interní IP). Když nmap blahblah.no-ip.org
Otevřel jsem port 23 a 80. 80 se zdá být v pořádku, ale nikdy jsem na svém počítači nespustil službu telnet.
Nějaké nápady, co ještě zkusit? Router je zte zxv10 a přesměrování portů je správně nastaveno. Říkám to, protože jsem již nastavil přesměrování portů pro záplavu a funguje správně.
Přijatá odpověď:
Není možné se připojit na veřejnou IP adresu předávanou portem ze stejné LAN. Abych to vysvětlil, budu potřebovat příklad.
Předpokládejme, že soukromá IP vašeho routeru je 192.168.1.1 s veřejnou IP 10.1.1.1. Váš server je na 192.168.1.2 portu 2222. Nastavili jste přesměrování portů z 10.1.1.1:1111 na 192.168.1.2:2222.
Pokud s vámi chce někdo na internetu (10.3.3.3) mluvit, vygeneruje paket:
Source: 10.3.3.3 port 33333
Dest: 10.1.1.1 port 1111
Váš router přijme paket 10.1.1.1 a přepíše jej:
Source: 10.3.3.3 port 33333
Dest: 192.168.1.2 port 2222
Váš server přijme tento paket a odešle odpověď:
Source: 192.168.1.2 port 2222
Dest: 10.3.3.3 port 33333
Váš router přijme tento paket na 192.168.1.1 a přepíše jej:
Source: 10.1.1.1 port 1111
Dest: 10.3.3.3 port 33333
A spojení funguje a všichni jsou šťastní.
Nyní předpokládejme, že se připojujete zevnitř vaší LAN (192.168.1.3). Vygenerujete paket:
Source: 192.168.1.3 port 33333
Dest: 10.1.1.1 port 1111
Váš router přijme paket 10.1.1.1 a přepíše jej:
Source: 192.168.1.3 port 33333
Dest: 192.168.1.2 port 2222
Váš server přijme tento paket a odešle odpověď:
Source: 192.168.1.2 port 2222
Dest: 192.168.1.3 port 33333
Zde jsme narazili na problém. Protože cílová IP je ve vaší LAN, váš server neposílá tento paket do routeru k přepsání. Místo toho jej odešle přímo na číslo 192.168.1.3. Ale tento stroj neočekává odpověď od 192.168.1.2 portu 2222. Očekává ji od 10.1.1.1 portu 1111. A tak odmítá poslouchat tento „falešný“ paket a věci nefungují.
Související:SSH 7.4 prodloužená pauza u „závazek:síť“?Způsob, jak to obejít, je nakonfigurovat svůj router (který také poskytuje DNS pro moji LAN), aby vrátil soukromou IP adresu mého serveru, když vyhledám název hostitele DDNS. Tímto způsobem, když jsem ve své domácí síti, připojuji se přímo k serveru a přeskakuji přesměrování portů. (Toto řešení funguje pouze v případě, že vaše přesměrování portu nemění číslo portu, pouze IP adresu. A na jeden veřejný název hostitele můžete mít pouze 1 server.)