frp内网穿透搭建vpn-server
frp是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。
环境:
- 外网服务器(以下称为A服务器)
- 内网服务器(vpn-server,以下称B服务器)
搭建方法:
一、vpn-server搭建
1、docker、docker-compose安装,请自行查看官方文档
2、重要: 首先在 Docker 主机上加载 IPsec NETKEY 内核模块:
sudo modprobe af_key
3、使用docker的hwdsl2/ipsec-vpn-server
镜像搭建vpn-server,docker-compose.yml
配置如下:
version: '2'
services:
vpn-server:
image: hwdsl2/ipsec-vpn-server
restart: always
env_file:
- ./vpn.env
ports:
- "500:500/udp"
- "4500:4500/udp"
privileged: true
hostname: ipsec-vpn-server
container_name: ipsec-vpn-server
volumes:
- /lib/modules:/lib/modules:ro
4、创建vpn配置文件vi vpn.env
,配置信息如下:
# Define your own values for these variables
# - DO NOT put "" or '' around values, or add space around =
# - DO NOT use these special characters within values: \ " '
VPN_IPSEC_PSK=your_ipsec_pre_shared_key
VPN_USER=your_vpn_username
VPN_PASSWORD=your_vpn_password
测试内网ip是否能正常连接VPN,用户名、密码、共享密钥为vpn.env
中设置的内容
二、A服务器安装frp
1、下载frp包
wget https://github.com/fatedier/frp/releases/download/v0.13.0/frp_0.13.0_linux_amd64.tar.gz
tar -zxvf frp_0.13.0_linux_amd64.tar.gz
cd frp_0.13.0_linux_amd64
2、修改配置文件frps.ini
[common]
bind_port = 7000
privilege_token = KEY
privilege_mode = true
privilege_mode
启用特权模式,privilege_token
特权密钥,你可以修改为任意你期望的密钥
3、创建自动启动服务,路径需要根据你的实际情况修改
vi /etc/systemd/system/frps.service
[Unit]
Description=frps daemon
[Service]
Type=simple
ExecStart=/root/frp_0.13.0_linux_amd64/frps -c /root/frp_0.13.0_linux_amd64/frps.ini
[Install]
WantedBy=multi-user.target
服务管理命令:
systemctl start frps
systemctl enable frps
A服务器配置完成,接下来配置B服务器
三、B服务器安装frp(客户端与服务端有些差异,请仔细看)
1、下载frp包
wget https://github.com/fatedier/frp/releases/download/v0.13.0/frp_0.13.0_linux_amd64.tar.gz
tar -zxvf frp_0.13.0_linux_amd64.tar.gz
cd frp_0.13.0_linux_amd64
2、修改配置文件frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000
privilege_token = KEY
[vpn_port1]
type = udp
local_port = 500
remote_port = 500
[vpn_port2]
type = udp
local_port = 4500
remote_port = 4500
server_addr
修改为A服务器的ip,privilege_token
修改为你的服务端特权密钥;因为vpn需要两个端口(500,4500),协议均为udp,所以需要两个配置。
3、创建自动启动服务,路径需要根据你的实际情况修改
vi /etc/systemd/system/frpc.service
[Unit]
Description=frpc daemon
[Service]
Type=simple
ExecStart=/root/frp_0.13.0_linux_amd64/frpc -c /root/frp_0.13.0_linux_amd64/frpc.ini
[Install]
WantedBy=multi-user.target
服务管理命令:
systemctl start frpc
systemctl enable frpc
至此,所有配置完成,电脑设置vpn连接,正常应该可以正常连接上。如果不能,请检查frps.ini
和frpc.ini
以及防火墙设置是否有错误。