Извините, если это дублируется, я просто не могу найти решение. Сценарий -
статический IP 125.22.25.241, который доступен из внешнего мира с помощью ssh.
Локальный IP 10.0.0.6 - локальный компьютер внутри сети статического IP, который содержит репозиторий git. /home/game/foobar.git
Мой вопрос: как с внешнего IP-адреса я могу использовать команды git для прямого взаимодействия с репозиторием git локального компьютера. что-то вроде этого .
git push admin@125.22.25.241:/home/game/foobar.git
У вас есть два варианта. Мои примеры основаны на TCP-порте собственного протокола Git. 9418
, но то же самое можно изменить и для других типов репозиториев. Если у вас есть репозиторий, использующий порт SSH 22
и он уже занят, вы можете использовать ЛЮБОЙ внешний порт вместо этого с обоими этими методами.
Настройте свой маршрутизатор, выполните порт вперед через NAT, то есть преобразовать внешний IP-адрес и порт во внутреннюю комбинацию, например 198.51.100.100:9418 -> 10.0.0.6:9418
. (Похоже, что настройка перенаправления портов с использованием практически любого роутера собрана в одном месте, хотя вроде бы там много рекламы portforward.com. Я бы предпочел руководство пользователя вашего устройства.)
Создать SSH туннель:
ssh -L 9418:10.0.0.6:9418 user@198.51.100.100
... и используйте Git через этот туннель:
git push admin@127.0.0.1:/home/game/foobar.git
Получите статическую подсеть IPv6. Назначьте хосту статический адрес и поместите его в публичный DNS. Разрешите протоколы git или ssh в вашем брандмауэре.