Skip to main content

Проброс порта в Ubuntu 24.04 с использованием socat и OpenVPN

1. Настройка socat

1.1. Установка socat

sudo apt update 
sudo apt install socat

1.2. Создание отдельного сервиса для проброса одного порта

vim /etc/systemd/system/socat-8003.service
[Unit]
Description=Socat Port Forwarding for Port 8003
After=network.target

[Service]
ExecStart=/usr/bin/socat TCP-LISTEN:8003,fork TCP:10.20.1.20:8003
Restart=always

[Install]
WantedBy=multi-user.target

1.3. Создание отдельного сервиса для проброса одного порта

vim /etc/systemd/system/socat-5434.service
[Unit]
Description=Socat Port Forwarding for Port 5434
After=network.target

[Service]
ExecStart=/usr/bin/socat TCP-LISTEN:5434,fork TCP:10.20.1.30:5434
Restart=always

[Install]
WantedBy=multi-user.target

1.4. Activate services

sudo systemctl enable socat-8003.service
sudo systemctl start socat-8003.service

sudo systemctl enable socat-5434.service
sudo systemctl start socat-5434.service

2. Настройка автозапуска OpenVPN клиента с использованием CLI в Ubuntu 20.04 и выше

Для настройки автозапуска OpenVPN клиента с автоматической подстановкой логина и пароля выполните следующие шаги:

2.1. Убедитесь, что OpenVPN установлен

Если OpenVPN ещё не установлен, установите его с помощью команды:

sudo apt update
sudo apt install openvpn

2.2. Переместите (скопируйте) конфигурационный файл

Переместите|скопируйте ваш .ovpn файл (например, client.ovpn) в папку /etc/openvpn/client/:

sudo mkdir -p /etc/openvpn/client
sudo cp /путь/к/вашему/voiceman-semenov.ovpn /etc/openvpn/client/voiceman-semenov.conf

2.3. Создайте файл с логином и паролем

Для автоматической подстановки логина и пароля создайте файл, содержащий ваши учетные данные:
bash

sudo vim /etc/openvpn/client/voiceman-semenov_auth.txt

Добавьте в файл следующие строки:

ваш_логин
ваш_пароль

2.4. Настройте конфигурацию для использования файла с логином

sudo vim /etc/openvpn/client/voiceman-semenov.conf


Найдите строку, начинающуюся с auth-user-pass, и измените её на:

auth-user-pass /etc/openvpn/client/voiceman-semenov_auth.txt

Сохраните изменения.

2.5. Защитите файл с логином и паролем

Убедитесь, что файл с логином и паролем доступен только для root:

sudo chmod 600 /etc/openvpn/client/voiceman-semenov_auth.txt

2.5.1. Важно добавить конфигурацию маршрутизации к целевым серверам расположенным внутри сети за OpenVPN

route-nopull
route 10.20.1.20 255.255.255.255
route 10.20.1.30 255.255.255.255

2.6. Настройте автозапуск OpenVPN

Для автозапуска OpenVPN клиента при загрузке системы выполните следующие шаги:
Убедитесь, что имя вашего .ovpn файла совпадает с именем сервиса. Например, если файл называется client.ovpn, то сервис будет называться openvpn-client@client.service.
Активируйте автозапуск сервиса:
bash

sudo systemctl enable openvpn-client@client.service
# В нашем случает выполняем команду
sudo systemctl enable openvpn-client@voiceman-semenov.service

Запустите сервис вручную, чтобы проверить его работу:

sudo systemctl start openvpn-client@voiceman-semenov.service

Проверьте статус сервиса:

  sudo systemctl status openvpn-client@voiceman-semenov.service

2.7. Проверка подключения


Убедитесь, что OpenVPN подключается автоматически после перезагрузки системы. Перезагрузите компьютер:

sudo reboot

После перезагрузки проверьте статус подключения:

sudo systemctl status openvpn-client@voiceman-semenov.service

Примечание
Если вы используете несколько .ovpn файлов, убедитесь, что каждый из них настроен аналогичным образом, и активируйте соответствующие сервисы (openvpn-client@<имя>.service).
Теперь ваш OpenVPN клиент будет автоматически подключаться при загрузке системы с использованием указанных логина и пароля.