Jamyy's Weblog

在 Linux 命令列進行 PPTP VPN 連線

by Jamyy on 十二月.13, 2012, under Linux

環境:

  • PPTP VPN Server: Vigor2920, Remote Dial-in User 採用 PPTP 撥入

前置作業

  • Fedora / CentOS: # yum install pptp-setup
  • Ubuntu: 預設即有 pppdpptpsetup 指令

建立 PPTP VPN 連線設定檔

# pptpsetup --create toVigor --server my.router.hostname.or_public_ip \
>    --username myname --encrypt

# vi /etc/ppp/chap-secrets

#登入名稱  對應peers檔名  密碼  *
username toVigor mypassword *

# vi /etc/ppp/peers/toVigor

pty "pptp my.router.hostname.or_public_ip --nolaunchpppd"
name username
remotename toVigor
require-mppe-128
file /etc/ppp/options.pptp

建立 PPTP VPN 連線

# pppd call toVigor

中斷 PPTP VPN 連線

# pkill pppd

經由遠端 Gateway 上網

方式一: 寫在設定檔中, 每次連線均自動使用遠端 Gateway
# vi /etc/ppp/peers/toVigor

#於檔案底部加入
defaultroute
replacedefaultroute

方式二: 設置 Shell Script
# vi /etc/ppp/ip-up.d/route-traffic

#!/bin/bash

route del -net 0.0.0.0
route add -net 0.0.0.0 dev ppp0

# chmod +x /etc/ppp/ip-up.d/route-traffic

方式三: 連線後再手動設置
# route del -net 0.0.0.0
# route add -net 0.0.0.0 dev ppp0

不想透過遠端 Gateway 上網, 但仍要與遠端 LAN 聯繫的設置

# route add -net 192.168.1.0/24 dev ppp0
(假設遠端 network 為 192.168.1.0/24)

使用 PPTP VPN Server 提供的 DNS 設置

# echo 'usepeerdns' >> /etc/ppp/peers/toVigor

讓近端其他電腦透過本機 PPTP VPN 上網

# sysctl -w net.ipv4.ip_forward=1
# iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o ppp0 -j MASQUERADE
(假設近端 network 為 10.0.0.0/24)

Ref: Linux configure point to point tunneling PPTP VPN client for Microsoft PPTP vpn server - nixCraft



:,