如何在Linux上安装和配置tinc VPN
tinc
是一款开源 VPN 软件,具有许多其他 VPN 解决方案所没有的强大功能。例如,tinc
VPN 允许 NAT 后面的对等方直接通过 VPN 相互通信,而不是通过第三方服务器。这使得 tinc
成为一种点对点 VPN 解决方案。其他功能包括完整的 IPv6 支持和路径 MTU 发现。
在这个 tinc
示例中,我将向您展示如何通过 tinc
在两个主机之间建立 VPN 连接。我们分别将这些主机称为 alice
和 bob
。请注意,这些只是 tinc
使用的符号名称,不一定是主机名。在此示例中,我假设主机 bob
将启动与主机 alice
的 VPN 连接。
在 Linux 上安装 tinc
首先,在两台主机上安装 tinc
。
对于CentOS系统,首先设置RepoForge存储库,然后执行以下操作。
$ sudo yum install tinc -y
对于 Debian/Ubuntu 系统:
$ sudo apt-get install tinc
配置tinc
现在,让我们继续在两台主机上配置 tinc
VPN,如下所示。
在主机 alice
上,执行以下操作。
$ sudo mkdir -p /etc/tinc/myvpn/hosts
然后创建一个名为 tinc.conf
的 tinc
配置文件和主机配置文件,如下所示。
$ sudo vi /etc/tinc/myvpn/tinc.conf
Name = alice
AddressFamily = ipv4
Interface = tun0
在上面的示例中,/etc/tinc
下的目录 myvpn
是 alice
和 bob
之间要建立的 VPN 网络的名称。 VPN 名称可以是任何字母数字名称,不包含 -
。在 tinc.conf
中,Name
字段指示 tinc
运行的本地主机的名称,该名称不必是实际的主机名。您可以选择任何通用名称。
接下来,创建包含主机特定信息的主机配置文件。
$ sudo vi /etc/tinc/myvpn/hosts/alice
Address = 1.2.3.4
Subnet = 10.0.0.1/32
主机配置文件的名称(例如alice
)应与您在tinc.conf
中定义的名称相同。 Address
字段指示与alice
关联的全局可路由公共IP地址。给定 VPN 网络中至少一台主机需要此字段,以便其他主机可以向其发起 VPN 连接。在此示例中,alice
将充当引导服务器,因此具有公共 IP 地址(例如 1.2.3.4
)。 Subnet
字段指示要分配给 alice
的 VPN IP 地址。
下一步是生成公钥/私钥。
$ sudo tincd -n myvpn -K4096
上述命令将为主机 alice
生成 4096
位公钥/私钥。私钥将存储为/etc/tinc/myvpn/rsa_key.priv
,公钥将附加到/etc/tinc/myvpn/hosts/alice
。
接下来,配置将在 tinc
守护进程启动之后以及在 tanc 守护进程终止之前运行的脚本。
$ sudo vi /etc/tinc/myvpn/tinc-up
#!/bin/sh
ifconfig $INTERFACE 10.0.0.1 netmask 255.255.255.0
$ sudo vi /etc/tinc/myvpn/tinc-down
#!/bin/sh
ifconfig $INTERFACE down
$ sudo chmod 755 /etc/tinc/myvpn/tinc-*
现在主机alice
的tinc配置已经完成。与alice
类似,在主机bob
上配置tinc
,如下所示。
$ sudo mkdir -p /etc/tinc/myvpn
$ sudo vi /etc/tinc/myvpn/tinc.conf
Name = bob
AddressFamily = ipv4
Interface = tun0
ConnectTo = alice
在上面,请注意,与主机 alice
不同,我将 ConnectTo
字段放置在 bob
的 tinc
配置中,因为当主机 bob
上的 tinc
守护进程启动时,主机 bob
将启动到主机 alice
的 VPN 连接。
$ sudo vi /etc/tinc/myvpn/hosts/bob
Subnet = 10.0.0.2/32
$ sudo tincd -n myvpn -K4096
同样,bob 的私钥将存储为 /etc/tinc/myvpn/rsa_key.priv
,其公钥将添加到 /etc/tinc/myvpn/hosts/bob
中。
$ sudo vi /etc/tinc/myvpn/tinc-up
ifconfig $INTERFACE 10.0.0.2 netmask 255.255.255.0
$ sudo vi /etc/tinc/myvpn/tinc-down
ifconfig $INTERFACE down
$ sudo chmod 755 /etc/tinc/myvpn/tinc-*
如上所述在所有主机上完成 tinc
配置后,将每个主机的公钥文件复制到其他主机上:
在主机 alice
上:
$ scp /etc/tinc/myvpn/hosts/alice [email :/etc/tinc/myvpn/hosts/
在主机 bob
上:
$ scp /etc/tinc/myvpn/hosts/bob [email :/etc/tinc/myvpn/hosts/
最后,按如下方式启动它们的 tinc
守护进程。由于主机 bob
发起 VPN 连接,因此您需要首先在主机 alice
上启动 tinc
守护程序,然后在主机 bob
上启动。
$ sudo tincd -n myvpn
两台主机现在应该能够通过分配给它们的 VPN IP 地址相互通信。