База знаний по Open Source
Авторизация
Поиск по базе знаний

Подробности использования команд и их параметры – man openvpn.

remote < host > – определяет удаленный конец туннеля. Могут использоваться записи IP и DNS.

local < host > – определяет локальный ip или имя хоста, на котором будет работать OpenVPN. Актуально, если на локальной машине несколько адресов.

dev < device > – определяет какой использовать тип устройства tun или tap. Например:

  • dev tun
  • dev tap

При одном из таких указаний будет использован свободный интерфейс tun или tap. Так же можно явно указывать номер виртуального интрефейса, например tun0.

port < port number > – указывает на каком порту будет работать OpenVPN (локально и удаленно).

proto < proto > – какой протокол будет использоваться. Возможные значения: udp, tcp, tcp-client, tcp-server.

  • tcp-client – сам пытается установить соединение
  • tcp-server – только ждет подключений

С использованием протокола udp VPN будет работать быстрее, чем tcp, но в плане стабильности работы лучше выбирать tcp (как показывает практика, VPN-соединение более устойчиво).

remote-random – если указана данная опция и в random перечисленно несколько удаленных хостов, то OpenVPN в случайном порядке будет к ним подключаться. Применяется для балансировки нагрузки.

float – позволяет удаленному хосту изменять IP во время работы туннеля. Соединение при этом не разрывается.

ipchange < cmd > – выполняет скрипт или команду указанную в < cmd >, если IP сменился. Пример:
ipchange script-ip.sh

connect-retry < seconds > – пробует переподключиться через указанное время в секундах, если соединение было разорвано.

connect-retry-max < n > – максимальное количество повторов если соединение было разорвано

resolv-retry < seconds > – если OpenVPN не удалось узнать имя удаленного хоста по DNS, то через указанное количество секунд попытаться переподключиться.

lport < port > – указывает на локальный порт для использования OpenVPN

rport < port > – аналогично для удаленного порта. Пример:
rport 8000 – OpenVPN будет пытаться подключится к удаленному порту 8000

nobind – использовать динамический порт для подключения (только для клиента)

shaper < bytes > – указывает скорость передачи данных в байтах для исходящего трафика (только для клиента)

tun-mtu < mtu size > – устанавливает максимальный размер MTU. По умолчанию tun-mtu равен 1500. Использование:
tun-mtu 1200

dev-node < interface name > – устанавливает имя виртуального интерфейса. Например:

dev-node openvpn1

ifconfig – устанавливает локальный IP и маску подсети для туннельного интерфейса. Например:

ifconfig 10.3.0.0 255.255.255.0

server < network > < mask > – автоматически присваивает адреса всем клиентам (DHCP) в указанном диапазоне с маской сети. Данная опция заменяет ifconfig и может работаеть только с TLS-клиентами в режиме TUN, соответственно использование сертификатов обязательно. Например:

server 10.3.0.0 255.255.255.0

Подключившиеся клиенты получат адреса в диапазоне между 10.3.0.3 и 10.3.0.254. Адрес 10.3.0.1 сервер оставит себе.

server-bridge < gateway > < mask > < pool > – сервер в режиме моста для TAP устройств. Пример:

server bridge 10.3.0.1 255.255.255.0 10.3.0.128 10.3.0.254

Клиентам будут выданы адреса в диапазоне 10.3.0.128 – 10.3.0.254, в качестве шлюза будет указан 10.3.0.1.

mode server – переключает OpenVPN в режим сервера (начиная с 2-й версии)

mode p2p – данная опция идет по умолчанию.

push < options > – передача клиенту конфигурационных параметров. Пример:

push "route 192.168.0.0 255.255.255.0"

Аналогично с помощью push клиенту могут передаваться следующие параметры:

route
 route-gateway
 route-delay
 redirect-gateway
 inactive
 ping, ping-exit, ping-restart
 persist-key, persist-tun
 comp-lzo
 dhcp-option
 ip-win32

Последние две опции применимы только для Window-клиентов.

comp-lzo – параметр сжатия трафика, идущего через виртуальный туннель. Может принимать значения yes, no, adaptive.

  • comp-lzo yes – принудительно включить сжатие
  • comp-lzo no – принудительно отключить сжатие
  • comp-lzo adaptive – адаптивный режим.

route < network > – устанавливает указанную маршрутизацию на VPN-хосте, после успешного запуска туннеля. Пример:
route 10.0.10.0 255.255.255.252

route-gateway < IP > – устанавливает шлюз на VPN-хосте. Пример:
route-gateway 192.168.0.22
После успешного запуска виртуального туннеля клиенту будет задан шлюз 192.168.0.22

route-delay < seconds > – указывает подождать n-секунд перед установкой маршрутов. Пример:
route-delay 5
Т.е. через 5 секунд после установки туннеля будут заданы маршруты.

route-up < cmd > – выполнить скрипт или программу < cmd > после установки маршрутов. Пример:
route-up /script.sh

redirect-gateway – установить шлюзом по умолчанию удаленный сервер. Т.е. когда удаленный пользователь подключается к нашему серверу, то ему будет задан шлюз по умолчанию на наш сервер.

ping < seconds > – указывает отсылать ping на удаленный конец тунеля после указанных n-секунд, если по туннелю не передавался никакой трафик. Пример:
ping 10

ping-restart < seconds > – если за указанное время не было получено ни одного пакета с удаленной стороны, то перезапускать туннель. Пример:
ping-restart 60 – если в течении 60 секунд не было получено ни одного пакета, то туннель будет перезапущен.

ping-timer-rem – позволяет перезапускать туннель, только когда указан удаленный адрес.

persist-tun – данная опция оставляет без изменения устройства tun/tap при перезапуске OpenVPN.

persist-key – указывает не перечитавать файлы ключей при перезапуске туннеля.

resolv-retry < seconds > – устанавливает время в секундах для запроса об удаленном имени хоста. Актуально только если используется DNS-имя удаленного хоста. Пример:
resolv-retry 86400
inactive < seconds > – после n-секунд неактивности устройство TUN/TAP автоматически отключется. Пример:
inactive 120

ping-exit < seconds > – если за указанные n-секунд не было получено ни одного пакета, то отключать OpenVPN. Пример:
ping-exit 120

keepalive < seconds > < seconds > – является совмещением сразу двух команд – ping и ping-restart. Использует сразу два параметра в секундах, перечисленных через пробел. Пример:
keepalive 10 180
Означает следующее: каждые 10 секунд посылать ping на удаленный хост, и, если за 180 секунд не было получено ни одного пакета – то перезапускать туннель.

persist-local-ip < IP > – оставлять неизменными локальный IP адрес и номер порт, если туннель был перезапущен.

persist-remote-ip < IP > – оставлять неизменными удаленный IP адрес и номер порт, если туннель был перезапущен.
persist-remote-ip 192.168.50.1