Zdefiniowałem niezwiązany serwer DNS na moim VPS i wydaje się, że działa. Muszę użyć serwera DNS zamiast publicznych serwerów DNS, ponieważ niektórzy dostawcy usług internetowych zablokowali publiczne adresy IP DNS. Mój plik openvpn.conf to:
dev tun
proto tcp
# Notice: here I set the listening port to be 80 to avoid possible port blockage
port 80
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/server.crt
key /etc/openvpn/easy-rsa/2.0/keys/server.key
dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem
user nobody
group nogroup
server 10.8.0.0 255.255.255.0
persist-key
persist-tun
#status openvpn-status.log
#verb 3
client-to-client
push "redirect-gateway def1"
#pushing public DNS IPs
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.222.220"
comp-lzo
Jak sugerowano tutaj , próbowałem użyć adresów IP mojego serwera (powiedzmy 11.22.33.44). Więc zamiast
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.222.220"
Właśnie położyłem
push "dhcp-option DNS 11.22.33.44"
W openvpn.conf powyżej. Jednak po ponownym uruchomieniu openvpn widzę, że mój klient może nadal łączyć się z serwerem OpenVPN, ale nie można już renderować żadnych stron.
Co może tu być nie tak? Jak mogę rozwiązać ten problem?
źródło
Mówisz, że „wydaje się działać”. Jak to zweryfikowałeś? Czy opierasz się na fakcie, że serwer uruchomił się bez błędów, czy faktycznie wykonałeś wobec niego jakieś zapytania?
Pierwszą rzeczą, którą bym zrobił, to użyć nslookup lub dig, aby połączyć się z niezwiązanym serwerem i wykonać kilka zapytań. Wiem, że wykopaliska są obecnie bardziej modne, ale wiem lepiej.
Jeśli to nie zadziała, musisz ponownie spojrzeć na konfigurację DNS.
Czy jest to podstawowy serwer DNS czy buforujący serwer DNS? Czy próbujesz zapytać o zasoby lokalne lub zasoby internetowe? Czy działa zgodnie z oczekiwaniami, jeśli serwer DNS nie zostanie przesłany do klienta?
Jeśli przepuścisz cały ruch przez serwer OpenVPN, nie powinieneś martwić się, że Twój dostawca usług internetowych blokuje publiczne serwery DNS, ponieważ jeśli chodzi o twojego dostawcę usług internetowych, generujesz ruch tylko do twojego VPS; chyba że VPS stoi za tym samym dostawcą usług internetowych.
źródło
Okazuje się, że jeśli próbujesz połączyć się z klienta innego niż Windows, musisz wykonać kilka dodatkowych kroków:
W systemie Linux
Umieść ten wiersz w konfiguracji klienta (
client.conf
lubxxxx.ovpn
pliku)Wywołaj klienta OpenVPN w ten sposób:
To działało dla mnie.
źródło
Unrecognized option or missing or extra parameter(s) in [CMD-LINE]:1: script-security
Istnieją inne przydatne polecenia do konfiguracji tego, czego potrzebujesz za pomocą wiersza poleceń. Ale w moim przypadku możesz kontrolować połączenie VPN zarówno za pomocą wiersza polecenia, jak i GUI.
sudo nmcli connection add type vpn vpn-type openvpn con-name la.vpn.contoso.com ifname --
sudo nmcli connection modify la.vpn.contoso.com ipv4.dns 172.16.27.1 sudo nmcli connection modify la.vpn.contoso.com ipv4.dns-search int.contoso.com sudo nmcli connection modify la.vpn.contoso.com ipv4.never-default yes
I o wiele bardziej zainteresowany ostatni szlif:
nmcli connection modify la.vpn.contoso.com vpn.data 'ca = /tmp/la.vpn.contoso.com/you/ca.crt, key = /tmp/you.key, dev = tun, cert = /tmp/you.crt, cert-pass-flags = 1, comp-lzo = adaptive, remote = la.vpn.contoso.com:1194, connection-type = tls'
Następnie możesz kontrolować VPN za pomocą GUI lub użyć następujących poleceń:
sudo nmcli --ask connection up la.vpn.contoso.com sudo nmcli connection down la.vpn.contoso.com
źródło