Запуск Wireguard отключает SSH доступ к машине
У меня есть машина C, с которой я могу подключиться по SSH со своей машины B. Но когда C использует Wireguard для подключения к Интернету через машину A, я больше не могу подключить SSH к ней из B. Что мне делать?
2 ответа
Это потому, что вы больше не находитесь в частной сети, которую вы создали, 10.0.0.x .
У вас есть два варианта: один ssh-автомат B с машины A или сторожевой аппарат C с B и ssh
тогда вы должны включить IP-пересылку:
# echo 1 > /proc/sys/net/ipv4/ip_forward
# /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# /sbin/iptables -A FORWARD -i eth0 -o wg0 -m state --state RELATED,ESTABLISHED
-j ACCEPT
# /sbin/iptables -A FORWARD -i wg0 -o eth0 -j ACCEPT
Теперь вы можете SSH из C
Ссылки IP-переадресация, NAT.
Для меня это один из первых результатов в Google по запросу «wireguard ssh не может подключиться», так что вот прямое исправление, которое сработает. Запустите это на ssh-сервере перед подключением его к серверу Wireguard:
ip route add <ssh_client_pub_ip> via <ssh_server_default_gateway> dev <ssh_server_pub_interface>
ssh_client_pub_ip — общедоступный IP-адрес ssh-клиента, вы можете получить его с помощьюcurl ifconfig.me
ssh_server_pub_interface — имя публичного интерфейса. Пока у вас есть только один сетевой интерфейс, вы сможете сделать
ssh_server_default_gateway — шлюз по умолчанию публичного интерфейса ssh-сервера (клиент Wireguard). Вы можете получить это сip route | grep default | awk '{print $3}'
Теперь вы можете подключиться к узлу Wireguard с помощью AllowedIps к 0.0.0.0/0 и не потерять SSH-соединение! Это работает, потому что эта команда добавляет статический маршрут к вашему ssh-клиенту через шлюз по умолчанию, а затем, когда Wireguard добавляет свои правила для направления трафика на все IP-адреса, возникает исключение для трафика, идущего к вашему ssh-клиенту.
Вы можете поставить перед ним обратный прокси-сервер и все готово, но, по крайней мере, вы можете без проблем подключиться к SSH во время устранения неполадок. Я наткнулся на это гораздо более простое решение при использовании калькулятора Wireguard AllowedIPs здесь , который, помимо того, что предоставляет очень удобный калькулятор, помогающий исключить адреса из AllowedIPs, также рекомендует вам сначала рассмотреть возможность добавления статического маршрута для трафика к вашему SSH-клиенту, чтобы проверить, работает ли это. исправляет это.