安装 Frp

24,664次阅读

共计 2931 个字符,预计需要花费 8 分钟才能阅读完成。

安装 Frp

项目主页中文说明:
https://github.com/fatedier/frp/blob/master/README_zh.md

安装 FRP Server

作者已经提供了编译好的二进制包,下载解压 – 然后修改配置文件即可。

https://github.com/fatedier/frp/releases

# 下载 server 端
wget https://github.com/fatedier/frp/releases/download/v0.25.0/frp_0.25.0_linux_amd64.tar.gz
#解压
tar -zxvf frp_0.25.0_linux_amd64.tar.gz
#进入目录
cd frp_0.25.0_linux_amd64

继续编辑 frps.ini 这个文件,写入以下内容:

[common]
bind_port = 7000

[mstsc]
listen_port = 3389
auth_token = 123456
  • bind_port: 主服务需要监听的端口,这里使用 7000
  • listen_port : 需要转发的端口,这里使用 3389
  • auth_token: 相当于验证密码,这里使用 123456,也可以不填写

配置文件完成后输入命令./frps -c ./frps.ini 启动服务端,当然也别忘记在防火墙放行端口哦。如果需要服务在后台运行,可以将命令替换为:nohup ./frps -c ./frps.ini &

设置开机启动

添加 systemd 配置文件:

vim /usr/lib/systemd/system/frps.service

文件内容如下:

[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 # 启动服务的命令(此处写你的 frps 的实际安装目录)TimeoutStopSec=5
KillMode=process
PrivateTmp=true
StandardOutput=syslog
StandardError=inherit

[Install]
WantedBy=multi-user.target

ExecStart 的内容请根据自己 frp 安装目录修改。

设置开机启动

systemctl enable frps

启动 frp

systemctl start frps

查看 frp 是否启动

ps aux | grep frps

关闭开机自启动

systemctl disable frps

其它操作

systemctl restart frps # 重启
systemctl stop frps # 停止
systemctl status frps # 查看日志

安装 Windows 客户端

上面已提到 FRP 分服务端和客户端,上面的步骤已经完成服务端安装,接下来我们在 Windows 上安装客户端。

解压之后我们需要下面 2 个文件

frpc.exe
frpc.ini

修改配置文件 frpc.ini 内容如下:

[common]
server_addr = 1.1.1.1
server_port = 7000

[mstsc]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 3389
auth_token = 123456
  • server_addr: 为服务器公网 IP
  • server_port: FRP 主服务监听的端口
  • local_ip:本地电脑 IP
  • local_port: 本地电脑监听的端口(Windows 远程桌面服务默认监听 3389)
  • remote_port: Server 端需要转发的端口
  • auth_token: 验证密码,上个步骤我们设置的 123456

cmd 窗口下进入 FRP 客户端目录,然后执行命令 frpc.exe -c frpc.ini,如果不报错,那么客户端也正常运行了。假如您服务器 IP 是1.1.1.1,当您连接1.1.1.1:3389 时,就可以映射到内网的127.0.0.1:3389,从而实现内网穿透。

设置 Win 10 自动启动 frp

winsw 介绍

有时候我们需要在 Windows 下开机运行某些程序,这对于有图形界面的程序来说一般不是什么事,在选项中选中开机启动,然后它们就可以自动运行了。但是如果我们想运行一些命令行程序的话就没这么方便了。

原来我的做法是写一个 bat 脚本,然后将它的快捷方式复制到C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp,这样就可以开机自启了。不过这种方式有一个非常大的缺点,就是开机之后会显示一个命令行窗口!而且这个窗口还不能关,一关程序就停了。

其实 Windows 自带了一个后台程序管理的功能,就是我们经常用到的服务。但是 Windows 的服务只有程序的开发者在写程序的时候引用到这个功能,我们才能利用服务来控制程序的启动和关闭。对于一般的命令行程序来说,没办法利用服务。所以今天我们就来使用一下标题的这个winsw。它可以将 Windows 上的任何一个程序注册为服务,如果不需要,也可以方便的卸载服务。

https://github.com/kohsuke/winsw/releases

下载 winsw 最新版,为了方便将其重命名为 winsw.exe, 将该文件和frpc.exe 放在同一文件夹里,然后新建 winsw.xml 并写入以下内容:

<service>
    <id>frp</id>
    <name>frp 这里是服务的名称 </name>
    <description> 这里是服务的介绍,随便写 </description>
    <executable>frpc</executable>
    <arguments>-c frpc.ini</arguments>
    <onfailure action="restart" delay="60 sec"/>
    <onfailure action="restart" delay="120 sec"/>
    <logmode>reset</logmode>
</service>

然后我打开一个管理员权限的命令提示符或 Powershell 窗口,输入下面的命令,如果返回值为 0 或2019-05-29 21:24:33,060 INFO - Installing the service with id 'frp',说明已将程序注册为服务。

winsw install

然后打开 Windows 的服务,我们可以看到这下已经出现了注册的服务,我们可以像一般服务那样开启、关闭它。

win+ r 后通过 services.msc 进入到服务列表页面找到 frp 服务。

为了确保 frpc 在连接失败后自动尝试重新连接,在恢复 tap 页进行如下设置:

参考文献

https://www.jianshu.com/p/fc9e4ea61e13
https://www.imcockpit.com/archives/FRP.html
https://ffis.me/experience/1266.html

全文完
 
西西
📝创作说明:本文由 西西 于2019-05-29发表,共计2931字。
🉑转载说明:本作品采用 “知识共享署名-非商业性使用 4.0 国际许可协议” 进行许可。除特殊说明外,您可以自由的转载和修改,但请务必注明来源且不可用于商业目的。