Ssh
SSH 和 ddns:可以遠端連接但不能本地連接
我已經設置了一個無 IP帳戶來遠端訪問我家中的 ssh 伺服器
myserver.ddns.net
,它執行良好.. 只能從外部訪問。從外面:
遠端ping:
$ ping myserver.ddns.net # success
遠端ssh:
$ ssh myserver.ddns.net # success
從本地:
本地ping:
$ ping 192.168.2.8 # success
本地 ssh:
$ ssh 192.168.2.8 # success
遠端ping:
$ ping myserver.ddns.net # success, resolving to 90.113.108.192
遠端ssh:
$ ssh myserver.ddns.net # loOong time waiting, then.. Connection closed by 90.113.108.192 port 22
為什麼會這樣?
關於從內部網路訪問 NAT 的答案更正確的是:您不想這樣做,因為:
- 消費級技術的限制;
- 性能原因 - NAT 使用更多的 CPU 資源和記憶體 - 儘管在國內規模上並不令人擔憂;
- 路由更複雜 - 使用和調試。
替代方案是:
- 如果僅從該本地伺服器訪問,則創建一個主機文件條目;
- 創建名稱伺服器,如果公共 DNS 名稱屬於您,則創建視圖 - 不是您提供的情況,但通常在企業中;
- 創建名稱伺服器,並創建自定義內部名稱,如 ssh.home;
- 使用 BIND+RPZ,並將外部名稱重新定義為您的內部 IP 地址;
- 如果使用 Linux 機器進行路由,使用 iptables+NAT,將 SSH 會話擷取到您的外部 IP,並將它們 NAT 到您的內部 IP 地址。
關於我關於擷取 IP 地址/創建主機文件的評論,請參閱這個答案我如何在家處理我的 DDNS 地址。從 ISP 處更改 IP 地址的更好方法?
對於 BIND+RPZ,請參見: