我在家里安装了两个 Ubuntu 18.04 和 20.x 并尝试在它们之间进行 ssh,我可以通过内部 IP 连接,但不能通过主机名设置连接:
机器 A:192.xx115
机器B:192.xx125
两个安装都在运行 ssh,我可以使用内部 IP 正常连接。
从机器 BI 想使用主机名或主机名.ddns.net 连接到机器 A
以下是我设置的内容:
机器A:
machineA> /etc/hosts
127.0.0.1 machineA.ddns.net machineA
192.x.x.115 machineA
machineA> /etc/hostname
machineA.ddns.net
machineA> /etc/resolv.conf
nameserver 127.0.0.53
options edns0 trust-ad
search hsd1.xx.isp.net
机器B:
machineB> ssh [email protected]
# 即 machineA 成功
machineB> ssh -vvv [email protected] 给出
Connecting to machineA.ddns.net [ISP assigned address] port 22.
ssh: connect to host machineA.ddns.net port 22: Connection timed out
machineB> ssh -vvv 用户@machineA
ssh: Could not resolve hostname machineA: Name or service not known
SSH_from_external_to_machineA 成功
ssh [email protected] # 成功
在 machineA 上尝试的命令:
机A> sudo service ssh status # gives active(running)
机A> sudo netstat -alnp | grep :22 # shows :22 with LISTEN
机A> sudo iptables -A INPUT -p tcp --dport ssh -j ACCEPT
我觉得 ISP 没有阻止 ssh 的 ssh,因为我可以使用 machineA.ddns.net 从外部连接
路由器允许端口 22,因为我可以使用 IP 连接。
我觉得主机名没有正确解析,请查看并告诉我是否遗漏了任何其他步骤。
谢谢,
额外的编辑:
machineB> ping machineA_Hostname
成功了
machineB> nslookup machineA.ddns.net
按预期显示外部 IP
machineB> ssh machineA
# 无法解析主机名:名称或服务未知
machineB> ssh machineA.ddns.net
尝试连接到由 ping 和“连接超时”报告的确切外部 IP
为了避免对内部 IP 地址进行硬编码,请在 Ubuntu 上设置 avahi-daemon,以便您可以ubuntu.local
从主机操作系统访问主机名。
sudo apt-get install avahi-daemon avahi-discover avahi-utils libnss-mdns mdns-scan
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句