PPTP Client - Arch Linux 中文维基

跳至內容

# PPTP Client

出自 Arch Linux 中文维基

本文或本節內容已經過時。

原因： 請提供模板的第一個位置參數以概括原因。 (在Talk:PPTP Client討論)

這篇文章或章節的翻譯質量不佳。

原因：Last updated in 2011, out of sync with English page（在 Talk:PPTP Client# 中討論）

pptpclient是一個實現Microsoft PPTP協議的程序。因此它能夠被用來接入另一個Microsoft VPN網絡，比如學校和單位。

## 安裝PPTPClient

pptpclient由安裝包pptpclient提供，運行下列命令可以安裝：

    # pacman -S pptpclient

## 配置

你需要從網絡管理員獲取以下信息來配置pptpclient:

- VPN伺服器的ip或者域名
- VPN隧道名稱
- Windows域（不是所有網絡都需要）
- VPN用戶名
- VPN密碼

### 編輯配置文件

用你稱手的編輯器打開/etc/ppp/options.pptp。這個文件為你的VPN連接啟用了一系列默認安全設置。如果你連接時候出現問題，你可以自定義配置。你的options.pptp文件最少需要包含以下內容：

    lock
    noauth
    nobsdcomp
    nodeflate

### 編輯密碼文件

下一步，打開或者創建/etc/ppp/chap-secrets。我們將在這個文件裡面存儲你的密碼，記得修改權限讓除root之外所有用戶不能訪問它。這個文件的格式如下：

    <DOMAIN>\\<USERNAME> PPTP <PASSWORD> *

如果你的伺服器不要求域，則配置如下：

    <USERNAME> PPTP <PASSWORD> *

替換掉上文中範例中的占位符。注意，如果你的密碼包含特殊字符，比如「$」，你需要用雙引號把它們包起來。

### 命名你的VPN隧道

用你稱手的編輯器創建類似/etc/ppp/peers/<TUNNEL>的文件，把<TUNNEL>這裡替換成你的VPN連接名。這個文件設置之後看起來如下：

    pty "pptp <SERVER> --nolaunchpppd"
    name <DOMAIN>\\<USERNAME>
    remotename PPTP
    require-mppe-128
    file /etc/ppp/options.pptp
    ipparam <TUNNEL>

注意：跟剛才一樣，如果你的連接不要求域，忽略範例中的"<DOMAIN>\\"
注意：PPTP遠程主機使用Chap-Secrets文件中的<PASSWORD>

<SERVER>是VPN伺服器的地址，<DOMAIN>是你所屬的域，<USERNAME>是你將要用來連接伺服器的用戶名，<TUNNEL>是連接的名稱。

注意：如果你不需要使用MPPE，你應當從/etc/ppp/options.pptp中移除require-mppe-128這個選項

## 創建你的連接

用root執行以下命令來確保配置是正確的：

    # pon $TUNNEL debug dump logfd 2 nodetach

如果一切都配置好了，pon命令應當不會自動結束。一旦你感覺差不多OK了，就可以終止這個命令。

注意：另一個用來確保配置正確的命令是ifconfig -a，看看裡面時候有一個名叫ppp0的新驅動，並且還是可用的

執行以下命令來連接VPN隧道：

    # pon <TUNNEL>

<TUNNEL>是你之前命名過的VPN隧道名稱。注意使用root命令執行。

### 配置路由

一旦你成功連接上VPN，你就可以和VPN伺服器交互了。當然在此之前，咱們需要添加一個新的路由到你的路由表，從而可以接入遠程網絡。

注意：根據你的環境配置，你可能需要每次都重複添加路由信息

你可以閱讀PPTP Routing Howto來獲得更多如何添加路由的信息，裡面還有很多範例。

#### 選擇路由

對我來說，只有傳輸到VPN網絡的數據包才應該走VPN連接，所以我添加如下路由條目：

    # ip route add 192.168.10.0/24 dev ppp0

這將路由所有目的地址為191.168.10.xxx的數據到VPN連接。

#### 配置為默認路由

如果你想要所有數據從VPN連接走，下面這條命令包你爽：

    # ip route add default dev ppp0

注意：所有數據從VPN連接走的話會比正常連接慢一些

#### 使用ip-up.d設置默認路由

注意：/etc/ppp/ip-up.d/下所有腳本將在VPN連接建立的時候自動執行

    #!/bin/bash

    # This script is called with the following arguments:
    # Arg Name
    # $1 接口名字
    # $2 The tty
    # $3 連接速度
    # $4 本地ip地址
    # $5 Peer IP number
    # $6 可選``ipparam 的參數

    route add default gw $4

把這個腳本命名為01-routes.sh,然後放在/etc/ppp/ip-up.d/下面。

## 斷開連接

下面這條命令用來斷開VPN連接：

    # poff <TUNNEL>

<TUNNEL>是你VPN連接的名稱。

## 把一個VPN連接配為默認啟動

你可以在rc.d創建一個快捷命令來實現自動在後台連接VPN網絡。

注意：和平常一樣，<TUNNEL>是你隧道的名字，<ROUTING COMMAND>是你加入路由表的命令。

    #!/bin/bash

    . /etc/rc.conf
    . /etc/rc.d/functions

    DAEMON=<TUNNEL>-vpn
    ARGS=

    [ -r /etc/conf.d/$DAEMON ] && . /etc/conf.d/$DAEMON

    case "$1" in
     start)
       stat_busy "Starting $DAEMON"
       pon <TUNNEL> updetach persist &> /dev/null && <ROUTING COMMAND> &>/dev/null
       if [ $? = 0 ]; then
         add_daemon $DAEMON
         stat_done
       else
         stat_fail
         exit 1
       fi
       ;;
     stop)
       stat_busy "Stopping $DAEMON"
       poff MST &>/dev/null
       if [ $? = 0 ]; then
         rm_daemon $DAEMON
         stat_done
       else
         stat_fail
         exit 1
       fi
       ;;
     restart)
       $0 stop
       sleep 1
       $0 start
       ;;
     *)
       echo "usage: $0 {start|stop|restart}"
    esac

注意，我們可以使用updetach和persist這兩個附加命令在pon上。updetach保證pon阻塞知道連接被建立。另外一個命令persist保證網絡自動重練。如果需要開機自動啟動，則添加@<TUNNEL>-vpn到rc.conf的DAEMONS中去。

## 注意

你可以在pptpclient website查到更多關於pptpclient的配置信息。Ubuntu的幫助手冊也有一些幫助你配置的信息。這些範例能夠很輕鬆的稍加變換從而添加到daemons中去，從而幫助你自動化運行。

分類：​

- 使用「模板:過時」標記的頁面或章節
- VPN

隱藏分類：​

- 使用「模板:糟糕的翻譯」標記的頁面或章節

PPTP Client
新增話題