У меня есть сервер с Ubuntu 20.04 и установленным и работающим IKEv2 VPN с Strongswan.
И у меня есть одна php система (установленная на том же сервере с VPN), которая заблокирована по IP. Поэтому я использую VPN, чтобы войти внутрь с моим IP. (Да, я добавил локальные адреса VPN)
Проблема в том, что $_SERVER['REMOTE_ADDR']
НЕ показывает мой VPN IP,
но показывает IP моего мобильного оператора. Как будто не имеет значения, с VPN я или без.
Я действительно не могу понять, в чем дело. Я пытался удалить DNS, но таким образом VPN не работает. Кто-нибудь знает, как решить эту проблему?
Вот ipsec.conf:
config setup
charondebug="ike 1, knl 1, cfg 0"
uniqueids=no
conn ikev2-vpn
auto=add
compress=no
type=tunnel
keyexchange=ikev2
fragmentation=yes
forceencaps=yes
ike=aes256-sha1-modp1024,3des-sha1-modp1024!
esp=aes256-sha1,3des-sha1!
dpdaction=clear
dpddelay=300s
rekey=no
left=%any
leftid=@example.com
leftsubnet=0.0.0.0/0
#leftauth=eap
#eap_identity=username
right=%any
rightid=%any
rightdns=8.8.8.8,8.8.4.4
rightsourceip=10.10.10.0/24
authby=secret
Некоторые клиенты не могут подключиться к общедоступному IP-адресу VPN-сервера через VPN, даже если весь трафик настроен на туннелирование (цель leftsubnet = 0.0.0.0 / 0
). Среди них клиенты Apple (в вашем случае iOS).
Итак, чтобы подключиться к серверу, вы должны назначить ему дополнительный IP-адрес и подключиться к нему. Это может быть второй публичный или произвольный виртуальный IP-адрес. Например, вы можете назначить 10.10.10.1
интерфейсу сервера lo
, а затем назначить 10.10.10.2
в качестве первого виртуального IP-адреса клиентам (т.е. rightsourceip = 10.10.10.2 / 24
).
Убедитесь, что трафик с виртуального IP-адреса сервера не возвращается клиентам, например вставив следующее правило (если вы следовали странице Forwarding and Split-Tunneling в вики strongSwan, возможно, у вас уже есть это или подобное правило):
iptables -t nat -I POSTROUTING -m policy --pol ipsec --dir out -j ACCEPT