У меня OpenVPN настроен на сервере Ubuntu 16.04. Я могу использовать этот VPN-сервис из одной сети, но не из других, и буду признателен за любую помощь.

Домашняя сеть
Все отлично работает Я могу подключиться к VPN и просматривать веб-страницы с разных устройств (MacBook и Android Phone).

Рабочая сеть
VPN-клиент подключается, но я не могу просматривать веб-страницы на любом устройстве.
Проверка имени хоста работает, поэтому проблема с DNS может не возникать.
Страницы браузера застревают при подключении до истечения времени ожидания.
Slack клиент не подключается, однако клиент Dropbox сообщает о подключении.

Мобильные данные
То же, что и рабочая сеть.

Конфигурация сервера

port 443
proto udp
dev tun
sndbuf 0
rcvbuf 0
ca ca.crt
cert server.crt
key server.key
dh dh.pem
tls-auth ta.key 0
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
keepalive 10 120
cipher AES-256-CBC
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
crl-verify crl.pem

Конфиг клиента

client
dev tun
proto udp
sndbuf 0
rcvbuf 0
remote x.x.x.x 443  #My Server's IPAddress
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
comp-lzo
setenv opt block-outside-dns
key-direction 1
verb 3

Хотя этот конфиг использует порт 443, у меня была такая же проблема при использовании порта по умолчанию 1194.
Я также экспериментировал с изменением конфигурации DNS push и использованием DNS-серверов Google, но это не имеет никакого значения.

Надеюсь, кто-то может помочь.

2 ответа2

0

Я предлагаю попробовать порт 443 с протоколом TCP. Поскольку это порт HTTPS, большинство брандмауэров не проверяют пакеты по TCP 443, так как ожидается, что они будут зашифрованы. Так что это делает пакеты данных VPN, чтобы иметь больше шансов выжить через брандмауэр:

proto udp
port 1194

Мое второе предложение - иметь HTTP-прокси, такой как Squid, работающий на одном сервере с OpenVPN и настроить его на прослушивание через порт 443. Убедитесь, что этот сервер защищен. С прокси вы можете заставить свой сервер Openvpn прослушивать локальный IP-адрес и порт по умолчанию, поскольку к нему будет фактически подключаться только прокси-служба, работающая на локальном хосте. Нет необходимости изменять конфигурацию сервера по умолчанию:

# SERVER
proto udp
port 1194

# You can easily change the client. On the client, you can configure it to 
# connect to the VPN over proxy by adding changing a couple of lines :

# CLIENT
proto udp
http-proxy <SERVER IP> 443
remote <SERVER IP> 1194

Наконец, если ничего из вышеперечисленного не сработало, вы можете попытаться найти лучший MTU.

0

Можете ли вы проверить журналы вашего сервера, чтобы убедиться, что соединение действительно установлено?

Кроме того, это ваш полный клиент Conf?

Если это так, я не уверен, как это работает вообще, учитывая, что на сервере есть tls-auth ta.key 0 - вам нужно настроить его на обоих концах (с клиентской стороны, использующей 1 вместо 0), чтобы иметь возможность на самом деле подключиться.

Я хотел бы начать с проверки ваших предпосылок и, как предлагали другие, затем начать зацикливаться на таблицах маршрутизации и брандмауэрах на работе.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .