frp 是什么?
frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。关于 frp 的详细介绍详见 Github。从 frp 的架构体现了两个端:服务端 frps 和 客户端 frpc。本文主要讲述在 Windows 下部署服务端、在 Docker 下部署客户端的实现步骤。
为什么要内网穿透?
目前遇到了 2 个业务需求,需要内网穿透来解决:
- 公司局域网内服务器部署了 Web 站点,需要在公司外访问;
- 云服务器需要定时向内网服务器发送请求;
本文分别记录了在 Linux 和 Windows 环境下部署 FRP 客户端与服务端的步骤。
- 服务端 1:公网 CentOS 7.4 (x64)
- 服务端 2:公网 Windows Server 2008 (x64)
- 客户端1:Linux 环境下的 Docker (x64)
- 客户端2:Windows 10 (x64)
1.1. Linux 服务端
- 选择 frp_x.xx.x_linux_amd64.tar.gz
解压后取出 frps 和 frps.ini 两个文件,放到 frp 目录下。
不同系统下 frps.ini 内容相同,可参考的参数如下(注释请删掉):
[common] bind_addr = 0.0.0.0 bind_port = 9001 dashboard_port = 9000 // 控制面板端口 dashboard_user = admin // 控制面板用户名 dashboard_pwd = admin // 控制面板密码 vhost_http_port = 8000 vhost_https_port = 4430 log_file = ./frps.log log_level = error log_max_days = 3 token = thisisarandomstring // 自定义15位以上的连接密钥 max_pool_count = 50 tcp_mux = true
打开终端进入 frp 目录下,先 chmod 后再运行:
cd frp chmod 775 frps chmod 775 frps.ini nohup ./frps -c frps.ini &
命令说明:
nohup :在退出帐户之后继续运行相应的进程,不挂起( no hang up)。
& :在后台运行某个作业,使终端不被该作业占据。
1.2. Windows 服务端
- 选择 frp_x.xx.x_windows_amd64.zip
解压后取出 frps.exe 和 frps.ini 两个文件,放到 frp 目录下。
不同系统下 frps.ini 内容相同,可参考上面的配置,此处不赘述。
使用管理员身份启动 cmd 终端,进入 frp 目录下运行:
cd frp frps -c frps.ini
启动任务管理器,出现了 frps.exe,说明 frps 已经在后台运行了。
注:终端运行后不能关掉。
1.3. 开放安全组
由于公网系统是云主机,因此还要到安全组里开放相应的端口。
腾讯云安全组:
阿里云安全组:
至此,服务端的 frp 服务已经部署完成了。
2.1. Docker 部署客户端
这里建在 /home 中,可以通过 SSH 登录并操作:
cd /home sudo mkdir frp
首先进入到 /home/frp 中,使用 vi 创建 frpc-docker-compose.yml,写入:
version: '3' services: frpc: image: cloverzrg/frpc-docker volumes: - ./frpc.ini:/conf/frpc.ini container_name: frpc network_mode: host</code></pre>
再使用 vi 创建 frpc.ini,可参考的参数内容如下(注释请删掉):
[common] server_addr = x.x.x.x // 服务端的公网IP地址 server_port = 9001 token = thisisarandomstring // 自定义的连接密钥 [自定义名字] type = tcp local_ip = 127.0.0.1 local_port = 80 // 本地端口 remote_port = 9002 // 远程端口 use_encryption = true use_compression = true
docker-compose -f frpc-docker-compose.yml up -d
2.2. Windows 部署客户端
- 选择 frp_x.xx.x_windows_amd64.zip
解压后取出 frpc.exe 和 frpc.ini 两个文件,放到 frp 目录下。
不同系统下 frpc.ini 内容相同,可参考上面的配置,此处不赘述。
使用管理员身份启动 cmd 终端,进入 frp 目录下运行:
cd frp frpc -c frpc.ini
启动任务管理器,出现了 frpc.exe,说明 frpc 客户端已经在后台运行了。
注:终端运行后不能关掉。
参考资料
原文链接:https://www.cnblogs.com/conne/p/15215623.html