需求

最先使用frp只是为了实现内网穿透,用来远程单位的电脑。因为向日葵的免费版带宽限制非常的影响体验。后来单位有部分环境前移到了内网环境,也就是说出差或者在家就无法访问了,所以开始考虑代理公司的内网和局域网环境。

最开始使用的是CCprpoxy这个软件,但是还是需要放在内网的那台机器有公网ip,经过一番折腾才发现原来frp就可以做socks5代理。

实现

frp下载地址可以访问 https://github.com/fatedier/frp 获取

服务器端

服务器端我使用的是Docker直接部署的

docker run --restart=always --network host -d -v /var/opt/frp/frps.ini:/etc/frp/frps.ini -v /var/opt/frp/logs:/var/log --name frps snowdreamtech/frps

我的配置文件如下

[common]
bind_port = 7000

# udp port to help make udp hole to penetrate nat
bind_udp_port = 7001

# udp port used for kcp protocol, it can be same with 'bind_port'
# if not set, kcp is disabled in frps
kcp_bind_port = 7000

# web页面流量查看和连接状态查看端口
dashboard_port = 7500
dashboard_user = 账号
dashboard_pwd = 密码

vhost_http_port = 800
vhost_https_port = 4430


#日志输出,可以设置为具体的日志文件或者console
log_file = /var/log/frps.log

#日志记录等级,有trace, debug, info, warn, error
log_level = info
#日志保留时间
log_max_days = 3

# pool_count in each proxy will change to max_pool_count if they exceed the maximum value
max_pool_count = 20

客户端

客户端是放在单位的一台NUC小主机,win10的系统,所以下载的win版本frp,删除其中的frps相关的文件(即服务器端,也可以不删,没有影响)

我的配置文件

[common]
server_addr = 服务器端ip
server_port = 7000


#[ssh]
#type = tcp
#local_ip = 127.0.0.1
#local_port = 22
#remote_port = 6000

#远程服务端口
[rdp_pc]
local_port=3389
remote_port=7013

#sock5代理
[proxy_sock5_nuc]
type = tcp
remote_port =7050
plugin = socks5
plugin_user = 0HDFt16cLQJ
plugin_passwd = JTN276Gp
use_encryption = true
use_compression = true

需要注意的是用到的相关端口需要在服务器端防火墙打开

使用

我是使用的Proxifier这个软件,配置一下代理,然后在配置规则,将需要代理的ip启用代理即可