linux下如何设置vpn服务器
linux下如何设置vpn服务器详细介绍
在 Linux 下设置 VPN 服务器有多种方式,下面以 OpenVPN 为例介绍设置步骤:
1. 安装必要软件
首先要确保系统已经安装了必要的软件包。以 Ubuntu/Debian 系统为例,可执行以下命令:
bash
updateopenvpn easy-rsa
若是 CentOS/RHEL 系统,使用以下命令:
bash
yum openvpn easy-rsa
2. 准备 PKI(公钥基础设施)
创建一个 PKI 环境,用于生成证书和密钥。
bash
make-cadir ~/openvpn-ca~/openvpn-ca
编辑vars文件,对相关参数进行设置,像国家、省份、组织等信息。
bash
vars
设置好之后,初始化 PKI:
bash
vars./clean-all
./build-ca
3. 生成服务器证书和密钥
bash
./build-key-server server
一路回车,到最后输入y确认即可。
4. 生成 Diffie-Hellman 参数
bash
./build-dh
5. 配置 OpenVPN 服务器
复制示例配置文件:
bash
/usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn//etc/openvpn/
gunzip server.conf.gz
编辑server.conf文件,做如下修改:
plaintext
# 取消以下行的注释dh dh2048.pem
ca ca.crt
cert server.crt
key server.key
# 启用TLS验证
tls-auth ta.key 0 # This file is secret
# 启用压缩
comp-lzo
# 启用客户端到客户端的通信
client-to-client
# 启用NAT
push "redirect-gateway def1 bypass-dhcp"
# DNS设置
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
6. 生成 TLS 密钥
bash
openvpn ta.key
7. 复制证书和密钥到 OpenVPN 目录
bash
~/openvpn-ca/keys/server.crt,server.key,ca.crt,dh2048.pem /etc/openvpnta.key /etc/openvpn
8. 配置 IP 转发
编辑/etc/sysctl.conf文件,取消以下行的注释:
plaintext
net.ipv4.ip_forward=1
使配置生效:
bash
9. 配置防火墙
以 Ubuntu 的ufw为例,开启必要的端口并设置 NAT:
bash
ufw allow OpenSSHufw allow /udp
ufw
iptables nat POSTROUTING .0.0/24 eth0 MASQUERADE
10. 启动 OpenVPN 服务
bash
systemctl start openvpn@serversystemctl openvpn@server
11. 生成客户端证书和配置文件
bash
~/openvpn-cavars
./build-key client1
创建一个客户端配置文件,例如client.ovpn,内容如下:
plaintext
clientdev tun
proto udp
remote your_server_ip 1194
resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
verb 3
ca ca.crt
cert client1.crt
key client1.key
tls-auth ta.key 1
99123456789101112131415clientdev tunproto udpremote your_server_ip 1194resolv-retry infinitenobindpersist-keypersist-tuncomp-lzoverb 3ca ca.crtcert client1.crtkey client1.keytls-auth ta.key 1
将your_server_ip替换为实际的服务器 IP 地址,然后把ca.crt、client1.crt、client1.key、ta.key和client.ovpn文件复制到客户端设备。
按照以上步骤操作,你就可以在 Linux 系统上成功设置 OpenVPN 服务器。