Frp 内网穿透和反向代理
frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。
frp github地址: https://github.com/fatedier/frp
使用条件
- 需要一台公网服务器(阿里云,vultr …)
- 在公网服务能够开放端口
frp 下载
从 githup Release 页面下载最新版本的程序。
服务端安装
阿里云服务器安装服务端
1 | # 我的阿里云服务器为 Centos7 系统 |
- 安装结果如图:
启动服务端
前台启动(当退出终端服务停止)
1 | ./frps -c frps.ini |
- 启动结果如图:
后台启动
1 | sudo nohup ./frps -c frps.ini & |
- 程序在后端启动, 输出日志在nohup.out中
以系统服务方式启动(推荐)
添加systemd配置文件
1 | vim /usr/lib/systemd/system/frp.service |
文件内容如下1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=simple
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
StandardOutput=syslog
StandardError=inherit
[Install]
WantedBy=multi-user.target
ExecStart的内容请根据自己frp安装目录修改。
设置开机启动1
2systemctl daemon-reload
systemctl enable frp
启动frp1
systemctl start frp
查看启动状态:1
sudo ps aux | grep frp
- 状态如下
开放防火墙端口
1 | # 添加frp 7000端口 |
开放阿里云安全组(7000, 7001)端口
客户端使用
在windows客户端使用
下载服务端对应的版本
在Linux客户端使用
- 下载服务端对应的版本
- 代理公司内部的服务器,使用远程客户端连接
- frpc 供客户端使用
编辑 /usr/local/frp/fprc.ini
1 | vim /usr/local/frp/frpc.ini |
修改以下内容1
2
3
4
5
6
7
8
9[common]
server_addr = xxx.xxx.xxx.xxx # 你的服务器公网ip
server_port = 7000 # frps 监听端口号
[ssh] # 名称使用同一个客户端时, 名称必须唯一
type = tcp
local_ip = 127.0.0.1 # 本地ip或者局域网ip
local_port = 22 # 端口号
remote_port = 7001 # 公网端口号,会在公网服务器开启对应端口
启动客户端1
nohup ./frpc -c frpc.ini &
也可以采用其他方式启动, 请查看服务端启动方式