Назад | Перейти на главную страницу

Как мне назначить конкретный IP-адрес моему серверу OpenVPN?

Я пытаюсь настроить сервер OpenVPN, который будет динамически назначать клиентам их IP-адреса из заданного диапазона, и мне нужно, чтобы у сервера был конкретный статический IP-адрес, который не находится в начале диапазона адресов (например, 192.168.0.200 вместо 192.168.0.1). Вот мой файл конфигурации сервера:

mode server
port 1134
proto tcp6-server
dev tap
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 192.168.0.0 255.255.255.0
; the following line does not work :-(
ifconfig 192.168.0.200 255.255.255.0
client-to-client
duplicate-cn
keepalive 10 120
cipher AES-256-CBC
comp-lzo
max-clients 32
verb 15
mute 10

Изучив документацию и примеры в сети, я подумал, что строка "ifconfig ..." поможет, но openvpn продолжает назначать 192.168.0.1 виртуальному интерфейсу (tap0). Во время инициализации сервера openvpn можно увидеть эту строку:

Fri Apr  4 14:58:07 2014 us=410085 /sbin/ifconfig tap0 192.168.0.1 netmask 255.255.255.0 mtu 1500 broadcast 192.168.0.255

Почему openvpn игнорирует строку «ifconfig ...»? Не знаю, актуально ли это, но я использую openvpn 2.3 и ОС Ubuntu.

Какие-либо предложения?

Например, если вы хотите, чтобы ваш сервер использовал IP 10.8.0.254 вместо 10.8.0.1, вам нужно внести несколько изменений в ваш файл конфигурации.

Сначала измените строку "proto tcp" или "proto udp" на "proto tcp-server" или "proto udp-server"

Затем закомментируйте эту строку:

server 10.8.0.0 255.255.255.0

и вместо этого добавьте эти строки:

mode server
tls-server
ifconfig 10.8.0.254 10.8.0.253
ifconfig-pool 10.8.0.1 10.8.0.252
route 10.8.0.0 255.255.255.0
push "route 10.8.0.254"

перезапустите службу openvpn и все.

Я указываю вам на документацию по --server вариант. Если вы хотите указать вещи вручную, не используйте --server вариант. Вместо этого вручную введите нужные директивы. См. Полную страницу руководства со списком того, что --server делает.

   --server network netmask
          A helper directive designed to  simplify  the  configuration  of
          OpenVPN's  server  mode.   This directive will set up an OpenVPN
          server which will allocate addresses to clients out of the given
  ->>>>   network/netmask.   The  server itself will take the ".1" address
          of the given network for use as the server-side endpoint of  the
          local TUN/TAP interface.

          For example, --server 10.8.0.0 255.255.255.0 expands as follows:

               mode server
               tls-server
               push "topology [topology]"

               ...

               if dev tap OR (dev tun AND topology == subnet):
                 ifconfig 10.8.0.1 255.255.255.0
                 if !nopool:
                   ifconfig-pool 10.8.0.2 10.8.0.254 255.255.255.0
                 push "route-gateway 10.8.0.1"

Работал у меня (из первого ответа):

закомментировать строку:

server 10.8.0.0 255.255.255.0

вместо этого добавьте строки:

mode server
tls-server
push "topology [topology]"

ifconfig 10.8.0.254 255.255.255.0
ifconfig-pool 10.8.0.1 10.8.0.253 255.255.255.0
push "route-gateway 10.8.0.254"