抱歉,如果重复了,我只是找不到解决方案。场景 -
静态 IP 125.22.25.241,外界可以通过 ssh 访问。
本地 ip 10.0.0.6 - 包含 git 存储库的静态 ip 网络内的本地 PC。/home/game/foobar.git
我的问题是,如何从外部 IP 地址使用 git 命令直接与本地 PC 的 git 存储库交互。就像这样。
git push [email protected]:/home/game/foobar.git
答案1
您有两个选择。我的示例基于本机 Git 协议 TCP 端口9418
,但也可以针对其他类型的存储库进行修改。如果您有一个使用 SSH 端口的存储库22
并且它已被占用,则可以使用这两种方法中的任意外部端口。
配置您的路由器执行端口转发通过 NAT,即将外部 IP 地址和端口转换为内部组合,例如
198.51.100.100:9418 -> 10.0.0.6:9418
。(似乎使用几乎任何路由器配置端口转发都收集在同一个地方,尽管似乎有很多广告港口转运网。我更喜欢您设备的用户指南。)创建一个SSH 隧道:
ssh -L 9418:10.0.0.6:9418 [email protected]
...并通过此隧道使用 Git:
git push [email protected]:/home/game/foobar.git
答案2
获取 IPv6 静态子网。为主机分配一个静态地址并将其放入公共 DNS。在防火墙中允许 git 或 ssh 协议。