安装 Frp

安装 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 老柴的宅. Powered by Chaishiwei.com. 鄂ICP备11006811号