贝博恩创新科技网

Linux VPS如何搭建VPN?

在Linux VPS上搭建VPN服务是一种常见的需求,可以用于保护网络隐私、访问受限资源或实现安全远程连接,本文将以使用OpenVPN为例,详细介绍在Linux VPS(以Ubuntu 20.04系统为例)上搭建VPN服务的完整步骤,包括环境准备、服务安装、配置生成、客户端连接及安全优化等内容。

Linux VPS如何搭建VPN?-图1
(图片来源网络,侵删)

需要准备一台满足要求的Linux VPS,建议内存至少512MB,硬盘空间10GB以上,确保系统为纯净的Ubuntu 20.04或类似版本,通过SSH工具(如PuTTY、Xshell)登录VPS,执行以下命令更新系统软件包列表:apt update && apt upgrade -y,接着安装必要的依赖包,包括build-essentialcurlwgetgitunzip,执行命令:apt install -y build-essential curl wget git unzip

接下来安装OpenVPN及其依赖组件,OpenVPN需要使用Easy-RSA来管理证书和密钥,因此需要先安装Easy-RSA并创建证书目录,执行以下命令:apt install -y openvpn easy-rsa,然后创建证书工作目录:make-cadir ~/openvpn-ca,进入该目录:cd ~/openvpn-ca,编辑vars文件以配置证书参数,使用命令:nano vars,在文件末尾添加以下内容(根据实际需求修改):export EASY_RSA="pwd" export KEY_COUNTRY="CN" export KEY_PROVINCE="Beijing" export KEY_CITY="Beijing" export KEY_ORG="MyVPN" export KEY_EMAIL="admin@myvpn.com" export KEY_OU="MyVPNUnit"保存文件后,执行source vars初始化环境,然后生成根证书CA:./clean-all && ./build-ca,过程中直接按回车使用默认值。

接下来为服务器生成证书和密钥:./build-key-server server,同样按回车使用默认值,在“Sign the certificate? [y/n]”处输入“y”,最后输入“y”确认,然后生成Diffie-Hellman参数,增强密钥交换安全性:./build-dh,该过程可能需要几分钟时间,最后生成客户端证书和密钥,假设第一个客户端名为client1,执行命令:./build-key client1,同样在签名处输入“y”确认,完成后,将生成的证书和密钥文件复制到OpenVPN配置目录:cp ~/openvpn-ca/keys/{ca.crt,server.crt,server.key,dh.pem} /etc/openvpn/

接下来创建OpenVPN服务器配置文件,进入/etc/openvpn目录,创建server.conf文件:nano server.conf,添加以下核心配置内容:port 1194 proto udp dev tun ca ca.crt cert server.crt key server.key dh dh.pem server 10.8.0.0 255.255.255.0 push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" keepalive 10 120 comp-lzo user nobody group nogroup persist-key persist-tun status openvpn-status.log verb 3,配置说明:port 1194为VPN服务端口,可根据需求修改;proto udp为传输协议;server 10.8.0.0 255.255.255.0定义VPN客户端分配的IP段;push指令用于推送DNS服务器和默认路由,确保客户端通过VPN访问网络;comp-lzo启用数据压缩以提高性能。

启动OpenVPN服务并设置开机自启:systemctl start openvpn@serversystemctl enable openvpn@server,检查服务状态:systemctl status openvpn@server,确保显示“active (running)”,接下来配置VPS的IP转发和防火墙规则,使客户端能够通过VPN访问外部网络,首先编辑sysctl.conf文件:nano /etc/sysctl.conf,取消注释或添加net.ipv4.ip_forward=1,执行sysctl -p使配置生效,然后配置UFW防火墙(若使用iptables,需自行调整规则):ufw allow 1194/udpufw allow OpenSSHufw allow from 10.8.0.0/24,最后启用防火墙:ufw enable

生成客户端配置文件,在VPS上创建客户端配置目录:mkdir ~/client-configscd ~/client-configs,下载客户端配置模板:wget https://raw.githubusercontent.com/Nyr/openvpn-install/master/client.conf -O base.conf,编辑base.conf文件,修改以下内容:remote your_server_ip 1194(将your_server_ip替换为VPS的公网IP);ca ca.crtcert client1.crtkey client1.key(客户端证书和密钥路径);comp-lzo yes,然后创建客户端配置生成脚本:nano make_config.sh,添加以下内容:#!/bin/bash cp base.conf $1.ovpn echo "<ca>" >> $1.ovpn cat ~/openvpn-ca/keys/ca.crt >> $1.ovpn echo "</ca>" >> $1.ovpn echo "<cert>" >> $1.ovpn cat ~/openvpn-ca/keys/$1.crt >> $1.ovpn echo "</cert>" >> $1.ovpn echo "<key>" >> $1.ovpn cat ~/openvpn-ca/keys/$1.key >> $1.ovpn echo "</key>" >> $1.ovpn保存后赋予执行权限:chmod +x make_config.sh,生成客户端配置文件:./make_config.sh client1,生成的client1.ovpn文件可通过SCP或SFTP下载到本地客户端设备。

客户端连接时,将client1.ovpn文件导入OpenVPN客户端软件(如Windows客户端OpenVPN GUI、Android/iOS客户端OpenVPN Connect),输入服务器IP、端口及证书信息即可连接,连接成功后,客户端IP将变为VPS分配的10.8.0.x段,可通过访问ip.sb等网站验证IP是否切换成功。

为确保VPN服务安全,建议进行以下优化:1. 更改默认端口:在server.conf中修改port参数为非常用端口(如11940);2. 启用双因素认证:通过google-authenticator为客户端添加动态口令;3. 限制客户端访问:在server.conf中添加client-config-dir目录,为不同客户端配置不同的访问权限;4. 定期更新证书:建议每3-6个月重新生成客户端证书和密钥;5. 监控日志:通过tail -f /var/log/syslog | grep openvpn实时查看连接日志。

以下是相关问答FAQs:

Q1: 搭建VPN后连接速度慢怎么办?
A1: 可能原因包括VPS带宽不足、服务器负载过高、网络路由绕路等,可通过以下方式优化:1. 选择带宽更高的VPS服务商;2. 在server.conf中注释或禁用comp-lzo压缩(部分老旧设备可能因压缩导致性能下降);3. 更换VPN协议为TCP(适用于网络丢包严重场景);4. 优化VPS系统参数,如调整内核TCP缓冲区大小;5. 选择地理位置更接近的VPS节点。

Q2: 如何在Linux VPS上搭建PPTP VPN?
A2: PPTP VPN配置相对简单,但安全性较低,仅适用于旧设备,步骤如下:1. 安装PPTP服务:apt install -y pptpd;2. 编辑/etc/pptpd.conf,取消注释localip 192.168.0.1remoteip 192.168.0.234-238,192.168.0.245;3. 编辑/etc/ppp/pptpd-options,设置DNS服务器(如ms-dns 8.8.8.8)和加密选项(require-mppe-128);4. 编辑/etc/ppp/chap-secrets添加用户名和密码(格式:username pptpd password *);5. 启动服务并配置IP转发(参考OpenVPN部分);6. 配置防火墙允许PPTP端口(TCP 1723)和GRE协议,注意:PPTP存在已知安全漏洞,建议优先使用OpenVPN或WireGuard等更安全的协议。

分享:
扫描分享到社交APP
上一篇
下一篇