我的 MacOS 笔记本电脑没有静态公共 IP。我只是使用 wifi 连接在我的 MacOS 笔记本电脑上连接到互联网。
在另一个国家/地区有一台具有静态不变 IP 的服务器,需要使用它连接到我的笔记本电脑ssh
并执行一些任务。
如何从命令行获取我的 MacOS 笔记本电脑 IP,并将其提供给服务器团队以连接到我的笔记本电脑。
我试图给他们我的MacOS的公共IP,即“103.248.203.94”,使用谷歌的“我的IP是什么”搜索,并使用
host myip.opendns.com resolver1.opendns.com
Using domain server:
Name: resolver1.opendns.com
Address: 208.67.222.222#53
Aliases:
myip.opendns.com has address 103.248.203.94
我还可以连接到 MacOS 上的 localhost 22,如下所示,确认服务正在运行:
$telnet localhost 22
Trying ::1...
Connected to localhost.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.9
但是,即使 ssh 设置正确,服务器团队也无法连接到我的公共 IP。
你能建议一下吗?
答案1
你需要一个反向隧道。在以下示例中,您会将本地端口 22 从 MacOS 笔记本电脑转发到远程服务器上的端口 2222。假设远程服务器具有 XXXX 的静态 IP 地址,您可以从笔记本电脑使用以下命令创建反向隧道:
ssh -fnN -R 2222:localhost:22 [email protected]
在另一端(服务器端),用户将按照正常方式通过 SSH 连接到 Linux 服务器,然后他们将使用以下命令(从 Linux 服务器内部)启动到您的笔记本电脑的新 SSH 会话
ssh -p 2222 laptop-user@localhost
答案2
您的互联网路由器可能有一个 NAT,因为我们已经用完了 IP 地址(最后一组 IP 地址是几年前发布的)。
您从“我的 IP 是什么”中获得的地址将是您的路由器的 IP 地址。
该怎么办。
您需要设置端口转发:这样当有人尝试连接到路由器的第 22 部分时,请求就会转发到您的设备。
执行如下操作(每个路由器都会有所不同,有些比其他更容易)。
- 进入路由器的配置。
- 找到 DHCP 设置(可能不是这个)。
- 为您的设备提供静态 IP 地址。
- 找到端口转发的位。
- 设置端口转发规则。