Я настроил следующий виртуальный сервер в моей конфигурации NGINX:
сервер {
слушать 80;
слушать [::]:80;
имя_сервера ip.myserver.com;
место расположения / {
default_type текстовый/обычный;
вернуть 200 "$remote_addr\n";
}
}
Идея состоит в том, что у меня есть несколько других виртуальных серверов, к которым я хочу получить доступ только с помощью соединения OpenVPN, которое находится на той же машине. Используя этот тестовый сайт, он должен отображать частный IP-адрес (или общедоступный, если он не подключен к VPN).
Мой телефон Android работает отлично:
При подключении к сайту без VPN-подключения отображается следующее: 192.0.2.222
. (Конечно, на самом деле у него другой адрес.)
При подключении к сайту с использованием VPN-подключения отображается следующее 10.8.0.3
, это правильный результат, поскольку он показывает, что устройство использует VPN-подключение, а поскольку служба VPN и сервер Nginx находятся на одном компьютере, Nginx видит частный IP-адрес VPN.
Когда я делаю это на моем компьютере с Linux, он отображает общедоступный IP-адрес компьютера с Linux при подключении к серверу без VPN-подключения, а при подключении через VPN-подключение отображает общедоступный IP-адрес сервера, чего я не ожидал.
Я подозреваю, что что-то не так с настройкой OpenVPN на моем ноутбуке с Linux, поскольку телефон с Android работает нормально.
Конфигурация сервера OpenVPN:
порт 1194
прото udp6
разработчик тун
пользователь никто
группа
постоянный ключ
упорный тун
поддержка 10 120
топология подсети
сервер 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
нажмите «dhcp-опция DNS 94.140.14.14»
нажмите «dhcp-опция DNS 94.140.15.15»
нажмите «перенаправление-шлюз def1 bypass-dhcp»
сервер-ipv6 fd42:42:42:42::/112
тун-ipv6
нажмите тун-ipv6
нажмите "маршрут-ipv6 2000::/3"
нажмите "перенаправление-шлюз ipv6"
дх нет
ecdh-кривая Prime256v1
tls-crypt /etc/openvpn/tls-crypt.key
crl-проверить /etc/openvpn/crl.pem
ca /etc/openvpn/ca.crt
сертификат /etc/openvpn/server_key.crt
ключ /etc/openvpn/server_key.key
аутентификация SHA256
шифр AES-128-GCM
ncp-шифры AES-128-GCM
tls-сервер
tls-версия-минимум 1.2
tls-шифр TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256
клиент-конфигурация-каталог /etc/openvpn/ccd
статус /var/log/openvpn/status.log
глагол 4
Файл клиента OpenVPN (без ключей):
клиент
прото удп
явное уведомление о выходе
remote 192.0.2.222 1194 # Изменено для отображения.
разработчик тун
разрешить-повторить бесконечный
ни к чему
постоянный ключ
упорный тун
сервер удаленного сертификата tls
Verify-x509-name server_key name # Изменено, потому что не уверен, что личная информация
аутентификация SHA256
авторизация без кеша
шифр AES-128-GCM
tls-клиент
tls-версия-минимум 1.2
tls-шифр TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256
игнорировать-неизвестный-вариант блока-снаружи-dns
setenv opt block-outside-dns # Предотвратить утечку DNS в Windows 10
глагол 3