本教程详细介绍了如何搭建Linux单网卡VPN服务器。步骤包括安装必要的软件包、配置网络接口、设置VPN服务、生成密钥和证书,以及最后测试VPN连接。适用于有基础Linux系统操作经验的用户。
随着互联网技术的飞速发展,VPN(虚拟私人网络)已成为众多用户保障隐私安全、畅游国际网络的重要手段,Linux系统凭借其开源的特性,在构建VPN服务器方面展现出了强大的优势,本文将深入浅出地介绍如何在Linux系统上搭建一个单网卡VPN服务器,帮助您轻松实现这一目标。
准备工作
1. **服务器环境**:准备一台运行Linux操作系统的服务器,无论是实体机还是虚拟机均可。
2. **软件包**:OpenVPN是广泛使用的VPN软件,它完全兼容Linux系统。
3. **IP地址**:确保服务器拥有一个公网IP地址,以便外部用户能够访问。
安装OpenVPN
1. **更新系统源**:在终端执行以下命令更新系统源。
sudo apt-get update
2. **安装OpenVPN**:使用以下命令安装OpenVPN。
sudo apt-get install openvpn
3. **安装EasyRSA**:EasyRSA是一个用于生成CA证书、服务器证书和客户端证书的工具,通过以下命令安装它。
sudo apt-get install easy-rsa
生成证书
1. **创建EasyRSA配置文件**:在EasyRSA目录下创建一个名为`openssl.cnf`的配置文件,内容如下:
[ ca ]
default_ca = CA_default
[ CA_default ]
dir = ./CA
certs = $dir
crl_dir = $dir/crl
database = $dir/index.txt
new_certs_dir = $dir/certs
serial = $dir/serial
RANDFILE = $dir/.rand
private_key = $dir/private/ca.key
default_md = sha256
policy = policy_default
[ policy_default ]
countryName = CN
stateOrProvinceName = Zhejiang
localityName = Hangzhou
organizationName = Example Co., Ltd.
organizationalUnitName = IT Department
commonName = *.$HOSTNAME
emailAddress = admin@$HOSTNAME
[ req ]
default_bits = 2048
default_md = sha256
default_days = 365
default_crl_days = 30
default_challenge_type = pkcs12
prompt = no
[ dn ]
C = CN
ST = Zhejiang
L = Hangzhou
O = Example Co., Ltd.
OU = IT Department
CN = *.$HOSTNAME
emailAddress = admin@$HOSTNAME
2. **生成CA证书**:执行以下命令生成CA证书。
cd /etc/openvpn/easy-rsa/2.0
./clean-all
./build-ca
3. **生成服务器证书**:执行以下命令生成服务器证书。
./build-key-server server
4. **生成Diffie-Hellman参数**:执行以下命令生成Diffie-Hellman参数。
./build-dh
配置OpenVPN
1. **创建OpenVPN配置文件**:在`/etc/openvpn`目录下创建一个名为`server.conf`的配置文件,内容如下:
port 1194
proto udp
dev tun
ca /etc/openvpn/easy-rsa/2.0/CA/certs/ca.crt
cert /etc/openvpn/easy-rsa/2.0/CA/certs/server.crt
key /etc/openvpn/easy-rsa/2.0/CA/private/server.key
dh /etc/openvpn/easy-rsa/2.0/CA/dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
log��
log-append openvpn.log
verb 3
tls-auth ta.key 0
auth-user-pass-file user-pass.txt
2. **生成用户证书**:执行以下命令生成用户证书。
./build-key user
3. **生成TLS-Auth密钥**:执行以下命令生成TLS-Auth密钥。
openvpn --genkey --secret ta.key
启动OpenVPN服务
1. **创建用户**:创建一个专门用于OpenVPN服务的用户。
sudo adduser openvpn
2. **赋予用户权限**:将OpenVPN目录和配置文件的所有权赋予openvpn用户。
sudo chown -R openvpn:nogroup /etc/openvpn
3. **启动OpenVPN服务**:使用以下命令启动OpenVPN服务。
sudo systemctl start openvpn@server.service
4. **设置OpenVPN服务开机自启**:使用以下命令设置OpenVPN服务开机自启。
sudo systemctl enable openvpn@server.service
客户端连接
1. **生成客户端证书**:将客户端的公钥文件`client.crt`和私钥文件`client.key`复制到客户端。
2. **生成客户端配置文件**:根据服务器的IP地址和端口,创建一个客户端配置文件`client.ovpn`,内容如下:
client
dev tun
proto udp
remote your_server_ip 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
tls-auth ta.key 1
username your_username
password your_password
comp-lzo
3. **连接VPN**:在客户端打开OpenVPN客户端,导入`client.ovpn`配置文件,连接VPN。
至此,您已在Linux系统上成功搭建了一个单网卡VPN服务器,用户通过客户端连接VPN后,即可畅游国际网络,同时也能有效隐藏自己的真实IP地址。