如何在没有 GUI 的 Ubuntu Server 上配置 VPN 连接?

Mar*_*tin 4 vpn

我可以使用 PPTP 或 L2TP。我发现的所有教程都需要一个 GUI 来设置连接。但是,我想从我只有 SSH 访问权限的虚拟服务器进行连接。任何提示?

Lac*_*cek 5

要使用 PPTP,您需要执行以下操作:

首先,安装pptp-linux, pppd,ppp包。然后,在/etc/ppp/peers/. 文件名无关紧要,但此名称将用于打开 PPTP 隧道,因此请为其命名一些有意义的名称。该文件(“对等文件”)应包含以下内容:

pty "/usr/sbin/pptp <server_ip_address> --nolaunchpppd"
name <your_login_name>
remotename <identifier>
require-mppe-128
file /etc/ppp/options.pptp
ipparam <ipparam_id>
Run Code Online (Sandbox Code Playgroud)

用适当的值替换server_ip_addressyour_login_name。在identifier将被用于提供密码(见下文)。中ipparam_id的脚本使用/etc/ppp/ip-up.d/。如果您想对隧道接口执行某些操作(添加路由,也许 - 见下文),则需要它。

您需要提供密码。密码存储在一个纯文本文件中(这很糟糕,一定要把文件改成 0600)。该文件是/etc/ppp/chap-secrets, anbd 它应该包含这样的一行:

your_login_name    identifier    <your_password>    *
Run Code Online (Sandbox Code Playgroud)

前两个参数来自对等文件。

如果您想在 PPTP 隧道启动和/或停止时执行某些操作,您需要将脚本添加到/etc/ppp/ip-up.d//etc/ppp/ip-down.d/目录。这些目录中的每个脚本都将在(取消)激活 ppp 隧道时运行。为脚本导出的以下全局变量(还有其他的,但这些是最有用的):

  • PPPD_PID: pppd 进程的PID
  • PPP_IFACE: 有问题的界面
  • PPP_IPPARAM: ipparam_id,在对等文件中给出
  • PPP_LOCAL: 分配给 ppp 接口的本地 IP 地址
  • PPP_REMOTE: 分配给 ppp 接口的远程 IP 地址

完成这一切之后,您可以使用

pon <peer file>
Run Code Online (Sandbox Code Playgroud)

启动PPTP隧道,然后

poff <peer file>
Run Code Online (Sandbox Code Playgroud)

阻止它。