我正在尝试从另一台 PC 通过 SSH 连接我的家用 PC。在进入命令行之前,我需要知道我的 IP 地址。但我有点困惑。如果我使用 ifconfig,我会得到一堆 eth0 的“inet”数字。如果我访问数十个“测试您的 IP”网站中的任何一个,它们都指向一个地址,而这个地址实际上是我的 ISP 的地址。那么当我想使用 SSH 时应该使用什么呢?
我正在使用 Linux。
答案1
您从“测试您的 IP”网站获取的地址是您的公共 IP 地址。这是您在互联网上独一无二的地址。最有可能的是,此地址分配给您的路由器。您的计算机、笔记本电脑等的 IP 地址是内部的IP 地址,独有你的网络,而不是互联网。
如果你想从另一个位置通过 SSH 连接到你的家用电脑,你需要你的公共 IP 地址,并在路由器上启用端口转发(SSH 的端口为 22)到你的电脑内部的地址。请查看路由器手册以了解如何执行此操作。
请注意,由 ISP 分配的公共 IP 很可能是由 DHCP 分配的。这意味着 IP 地址可以恕不另行通知,但不太可能。
答案2
因此,Linux 命令行中的 ifconfig 将为您提供所需的一些信息:
eth0 Link encap:Ethernet HWaddr 00:e0:52:90:a0:6e
inet addr:192.168.100.4 Bcast:192.168.100.255 Mask:255.255.255.0
inet6 addr: fe80::2e0:52ff:fe90:a06e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2739429 errors:0 dropped:0 overruns:0 frame:0
TX packets:95275 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1104760995 (1.1 GB) TX bytes:7946649 (7.9 MB)
Interrupt:17 Base address:0x8c00
eth0 是您的第一个以太网适配器 [很可能是唯一的适配器]。其下的第二行显示 inet addr [我的示例显示 192.168.100.4]。如果您使用较流行的家用路由器之一来共享互联网连接,则您的地址很可能是 192.168.1.x。如果您想从家中的另一台计算机连接到这台计算机,则应使用此 IP 地址。如果您想从互联网连接到这台机器,则需要配置路由器以将端口 22 映射到此 IP 地址 [我的示例中为 192.168.1.x]。无论哪种方式,如果您要定期通过 ssh 进入机器,则应为其设置静态 IP 地址,可以通过 DHCP 租约预留或在机器本身中配置静态 IP 地址。如果在机器中配置静态 IP,请确保它超出路由器用于 dhcp 租约的范围。