LINUX.ORG.RU
ФорумAdmin

Директива port-share в конфиге VPN

 ,


0

2

Доброго дня. Не могу разобраться как правильно запустить VPN на 443 порту по протоколу tcp (Часто в кафе на файрволе разрешают только tcp коннекты на 80 и 443 порт и режут udp). Сейчас при старте VPN в лог валится ошибка такого вида:

TCP/UDP: Socket bind failed on local address [AF_INET]Public_IP:443: Address already in use

Дело в том, что сейчас этот порт слушает nginx (вывод команды netstat -nltp | grep 443):

tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      5542/nginx -g daemo

Нашёл на форумах совет использовать директиву port-share в server.conf:

local Public_IP
port-share localhost 10433
port 443
proto tcp

В конфиге nginx (/etc/nginx/nginx.conf) прописал в секции http{} так:

server {
listen 127.0.0.1:10443;
}

Перезапустил nginx, но всё равно VPN не запускается (Валит ту же ошибку). Помогите разобраться.

Пробовал в nginx слушать и Public_IP и в конфиге VPN указывать Public_IP в директиве port-share, не выходит.

Netstat тебе ясно говорит, что nginx слушает порт 443, а не тот что ты указал нам тут.
Так что либо
1. ты правишь не тот конфиг nginx,
2. либо это не единственная директива listen в конфиге nginx,
3. либо ты просто врешь.

Выбирай, что тебе больше нравится. Ферштейн?

zgen ★★★★★
()
Последнее исправление: zgen (всего исправлений: 1)

Проще всего либо перестать использовать https в nginx, либо использовать для vpn отдельный внешний IP (благо они не так уж дороги).
Наверное можно придумать какое-то очень сильное колдунство которое позволит в некоторых случаях использовать https и openvpn на одном порту, но я не думаю что это хорошая идея

MrClon ★★★★★
()
Ответ на: комментарий от zgen

Всё верно, у меня nginx подключает кучу конфигов (тк на серваке крутится много сайтов) из /etc/nginx/sites-available/

На некоторых сайтах установлен ssl сертификат, соответственно там прописано:

listen 443 ssl;

Вопрос в том, как заставить nginx одновременно работать и распозновать разные подключения на 443 порту.

d0br0t4
() автор топика
Ответ на: комментарий от MrClon

Так вопрос был именно в директиве port-share.

Насколько я понял, она и существуют для этого. Или я не прав?

d0br0t4
() автор топика
Ответ на: комментарий от d0br0t4

Почитал про port-share в мане openvpn (чего и тебе желаю, похоже ты не понял как его использовать), похоже это как-раз то самое очень-сильное-колдунство.

Суть такова: openvpn слушает 443 порт, nginx слушает какой-то-другой-порт, openvpn принимает соединения адресованные и ему и nginx-у, с помощью некоторой магии он определяет адресовано-ли соединение ему и если да то обрабатывает его сам, если нет то перенаправляет его на какой-то-другой-порт.

Это продакшен-сервер, или личная песочница? Если прод то не рекомендую засорять его подобными граблями на велопаровом приводе, арендуй отдельный vps под vpn. Писят рублей в месяц, не разоришься

MrClon ★★★★★
()
Ответ на: комментарий от d0br0t4

Вопрос в том, как заставить nginx одновременно работать и распозновать разные подключения на 443 порту.

Не nginx распознаёт, а openvpn, он и передает их на другой адрес, где их ждёт nginx

zgen ★★★★★
()
Последнее исправление: zgen (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.