
Мой пользователь интернет-провайдера CGNAT и у меня нет статического IP-адреса, но я хочу подключиться к своей подсети AWS. Я попытался создать VM для сервера OpenVPN, но таким образом я смогу подключиться только к серверной VM, если не настрою на всех остальных VM. Как мне подключиться к своей подсети без статического IP-адреса?
решение1
У меня нет опыта работы с OpenVPN, но с помощью простой настройки Wireguard вы можете создать один сервер Wireguard, который может разрешить доступ к любому количеству частных подсетей.
В этом примере 10.xx.xx.x
— мои частные подсети, а 192.168.x.x
— моя сеть Wireguard.
- Выберите или настройте выделенную машину в качестве сервера Wireguard и настройте базовую конфигурацию. Например, на стороне сервера
[Interface]
Address = 192.168.200.1
PrivateKey = ...
ListenPort = 51820
[Peer] # Enes home computer
PublicKey = ...
AllowedIPs = 192.168.200.2
и клиентская сторона
[Interface]
PrivateKey = ...
Address = 192.168.200.2
ListenPort = 51820
[Peer]
PublicKey = ...
Endpoint = your.wg.server
AllowedIPs = 192.168.200.1/32, 10.0.0.0/8 # We can route whatever we want!
- Настройте сервер Wireguard для разрешения пересылки IP-адресов, например, с помощью настроек sysctl:
sysctl -w net.ipv4.ip_forward=1
sysctl -w net.ipv6.conf.all.forwarding=1
- Настройте сервер Wireguard для разрешения маскировки, например, с помощью firewalld, пользовательского правила в зоне, где находится интерфейс Wireguard (например, внутренний)
firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.211.0/24" masquerade' --permanent
firewall-cmd --reload
И это должно быть все. Используйте wg
для проверки работоспособности Wireguard, и вы должны иметь возможность пинговать любой 10.x.x.x
адрес, который может выполнить сервер Wireguard.
Я запускаю эту настройку с одной виртуальной машиной сервера Wireguard против десятков частных подсетей с сотнями машин.