FRP 内网穿透 一般模式和安全模式
模式 | 名称 | 备注 |
---|---|---|
一般模式 | tcp | 配置简单,快速但是安全性能较差,远程暴露在公网上 |
安全模式 | stcp | 配置较为复杂,安全性能好。远程通过控制端访问服务端再访问被控端 |
部署环境准备
服务端IP 192.168.111.212
服务端口 bind_port = 7000
服务端部署(token加密)
centos6 部署服务端
https://github.com/fatedier/frp/releases
#frp软件下载
/usr/local/frp_0.33.0_linux_amd64
#frp解压安装目录
vim frps.ini
[common]
bind_port = 7000
token = Hxxxxm
#更改监听端口默认为7000
#token加密字段可以自定义
chmod +x /usr/local/frp_0.33.0_linux_amd64/frps
chmod +x /usr/local/frp_0.33.0_linux_amd64/frps.ini
#增加权限
nohup /usr/local/frp_0.33.0_linux_amd64/frps -c /usr/local/frp_0.33.0_linux_amd64/frps.ini & &> /dev/null
#启动服务
iptables -I INPUT -p tcp --dport 7000 -j ACCEPT
iptables -I OUTPUT -p tcp --dport 7000 -j ACCEPT
#防火墙允许通过
service iptables save
service iptables restart
#保存并重启
netstat -lnp|grep 7000
#查看7000端口监听状态
服务自启动
echo 'nohup /usr/local/frp_0.33.0_linux_amd64/frps -c /usr/local/frp_0.33.0_linux_amd64/frps.ini & &> /dev/null' >> /etc/rc.d/rc.local
tcp客户端部署
windows客户端部署
https://github.com/fatedier/frp/releases
#frp软件下载
#解压到C:\frp_0.33.0_windows_amd64
#编辑 frpc.ini
[common]
server_addr = 192.168.111.212
#服务端地址
server_port = 7000
#服务端端口号
token = Hxxxxm
#token加密字段与服务端一致
[RDP]
type = tcp
#链接类型
local_ip = 127.0.0.1
#本地地址
local_port = 33899
#RDP端口号
remote_port = 7002
#映射的远程端口号!建议更改
之后我们打开c:\frp_0.33.0_windows_amd64目录,按住键盘上的shift键后右键选择「在此处打开 Powershell 窗口」,执行以下命令来开启 frp 客户端:
.\frpc.exe -c frpc.ini
[RDP] start proxy success 服务已经成功开启,使用控制端的「微软远程桌面」应该就可以实现远程控制了。
windows以服务安装frp
winsw需要.net运行库以下以4.0为例
https://github.com/winsw/winsw/releases
#下载winsw,根据.net运行库选择不同版本
sample-minimal.xml
WinSW.NET4.exe
#根据运行库WinSW.NET4.exe改名为winsw.exe
#sample-minimal.xml改名为winsw.xml
#编辑「winsw.xml」
<service>
<id>frp</id>
<name>frp</name>
<description>frp service</description>
<executable>frpc.exe</executable>
<arguments>-c frpc.ini</arguments>
<onfailure action="restart" delay="60 sec"/>
<onfailure action="restart" delay="120 sec"/>
<logmode>reset</logmode>
</service>
复制文件到frp安装目录
按住键盘上的shift键后右键选择「在此处打开 Powershell 窗口」,执行以下命令
.\winsw install
.\winsw start
#安装服务,启动服务
Linux客户端安装
/usr/local/frp_0.33.0_linux_amd64
#解压上传到指定目录
vim frpc.ini
#编辑frpc.ini
[common]
server_addr = 192.168.111.212
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
#ssh端口号
remote_port = 7002
#远程访问端口号!建议更改
chmod +x /usr/local/frp_0.33.0_linux_amd64/frpc
chmod +x /usr/local/frp_0.33.0_linux_amd64/frpc.ini
#增加权限
nohup /usr/local/frp_0.33.0_linux_amd64/frpc -c /usr/local/frp_0.33.0_linux_amd64/frpc.ini & &> /dev/null
#启动服务
tcp模式链接方法
按下win按键
输入mstsc回车
或者直接打开远程桌面
127.0.0.1:7002
#服务端地址:客户端指定端口号
stcp模式部署
被控端部署
#编辑 frpc.ini
[common]
server_addr = 192.168.111.212
server_port = 7000
token = Hxxxxm
[RDP-XXXX]
type = stcp
sk=Qxxxxxxxx!
local_ip = 127.0.0.1
local_port = 33899
#remote_port = 7002
#更改XXXX与控制端frpc.ini内[RDP-XXXX-visitor]下server_name字段一致
#更改local_port = 33899
#sk为加密字段可以自定义
重启服务
控制端部署
#编辑 frpc.ini
[common]
server_addr = 192.168.111.212
server_port = 7000
token = Hxxxxm
[RDP-XXXX-visitor]
type = stcp
role = visitor
server_name = RDP-XXXX
sk=Qxxxxxxxx!
bind_addr = 127.0.0.1
bind_port = 7002
#访问端增加[RDP-XXXX-visitor]
#server_name = RDP-XXXX与客户端frpc.ini内[RDP-XXXX]字段保持一致
#bind_port = 7002更改端口
#每一个新的客户端都需要新的[RDP-XXXX-visitor]配置
重启服务
stcp链接方法
按下win按键输入mstsc回车或者直接打开远程桌面
127.0.0.1:7002
#本地地址:本地客户端指定端口号