При подключении к новому провайдеру столкнулся с проблемой настройки подключения к интернету через VPN. Все рекомендации, найденные в интернете (в т.ч. и на сайте провайдера), желаемого результата не дали. Везде направление описывается правильное, но за кадром остаются некоторые "моментики", которые приводили к отсутствию интернета у меня. По этому опишу свою последовательность действий с необходимыми комментариями.
Все описанное проверено на дистрибутива Debain Squeeze. Впрочем наверняка будет работать и в прочих дистрибутивах GNU/Linux. Мне не очень нравятся графические утилиты для настройки сети и по этому описываю, как все настроить в консоли. Все команды, приведенные ниже, необходимо выполнять с привилегиями пользователя root, т.е. вы должны либо зайти в терминал под root'ом или воспользоваться в терминале командой "su" или перед каждой командой вводить "sudo". Конфигурационные файлы редактировать надо так же от root.
Итак имеем:
route add -p <network_ip> mask <mask_ip> <ip_gateway>
Открываем в редакторе файл /etc/network/interfaces. И редактируем секцию интерфейса, к которому подключен провайдер (в качестве примера eth1).
iface eth1 inet static # указываем адрес нашего компьютера в локальной сети провайдера address <ip_prov_local> # указываем маску подсети netmask <ip_prov_mask> # указываем адрес шлюза gateway <ip_gateway> # добавляем предложенное провайдером правило маршрутизации up route add -net <network_ip> netmask <mask_ip> gw <ip_gateway> # добавляем правило маршрутизации до VPN сервера up route add -host <ip_vpn_server> gw <ip_gateway> # следующая команда заставляет подключать VPN соединение (подключение к внешке) # при подключении интерфейса т.е. соединение с внешним интернетом будет происходить # автоматически при подключении интерфейса (в т.ч. и при загрузке ОС) # если вам не нужно автоматическое подключение, закомментируйте или удалите эту строку post-up pon <vpn_name> # следующая команда заставляет отключать VPN соединение (подключение к внешке) при # отключении интерфейса, если вам не нужно автоматическое подключение, закомментируйте # или удалите эту строку pre-down poff <vpn_name> auto eth1
Теперь необходимо задать адрес серверов DNS. Для этого открываем файл /etc/resolv.conf и добавляем следующие строки:
nameserver <ip_dns_0> nameserver <ip_dns_1>
Теперь при
перезагрузке сети (при
перезагрузке системы или по команде /etc/init.d/networking restart
вам будет доступна локальная сеть провайдера. И вы можете узнать IP-адрес VPN-сервера при помощи команды ping <address_vpn>
Теперь необходимо настроить VPN соединение.
В систем должен быть установлен пакет pptp-linux. Для установки воспользуйтесь вашим пакетным менеджером или введите команду:
aptitude install pptp-linux
Приступаем к настройке. Создаем файл в каталоге /etc/ppp/peers/ с именем <vpn_name>. Настройки в данном файле прописаны по рекомендации моего провайдера. Однако с небольшим исправлением: на сайте провайдера указано, что имя пользователя необходимо вводить в кавычках. У меня работает и так и так. Кроме того, добавил строку noauth.
noauth mtu 1492 mru 1492 maxfail 3 lcp-echo-interval 10 lcp-echo-failure 4 name <user_name> #имя подключения можно задать и другое nremotename vpn pty "pptp <ip_vpn_server> --nolaunchpppd" require-mppe-128 replacedefaultroute
Далее редактируем файл /etc/ppp/chap-secrets. В отличии от примера на сайте провайдера добавлена звездочка в конце строки.
# vpn - это имя подключения которое вы задали в конфигурационном файле подключения # (выше) <user_name> vpn <user_pass> *
Теперь можно пробовать установить соединение командой. Если вы отключили автоматическое подключение, то именно данной командой вы можете его устанавливать в дальнейшем.
pon <vpn_name>
Если все пройдет без ошибок, то ни каких сообщений не будет выведено. Наличие подключения можно проверить командой
ifconfig
В выводе этой команды должен появиться интерфейс "ppp0". Впрочем на конце может быть другая цифра, если у вас уже существует иное ppp-подключение.
Если у вас есть необходимость отключить используйте команду
poff <vpn_name>