frp内网穿透学习
获取软件
frp github获取网址 https://github.com/fatedier/frp/releases ,win系统下载winscp传输到服务器,或者登陆服务器wget
服务器端
服务器要有公网IP, 解压后的文件夹保留frps及frps.ini,frps.fullini是很多选项的配置文件,可以参考。frps.ini修改如下:
1
2
3
4# frps.ini
[common]
bind_port = 7000
vhost_http_port= 8005启动frps:
1
2
3./frps -c ./frps.ini
#下面是windows平台启动命令
.\frpc.exe -c .\frpc.ini自启设置
复制自https://blog.csdn.net/x7418520/article/details/81077652
使用nohup启动
这是frps的后台启动(路径写你服务器上的绝对路径),如果要查看日志的话,就直接使用
cat nohup.out
,就可以查看了,frpc端启动同理1
nohup /path/to/your/fprs -c-c /path/to/your/frps.ini
使用systemctl控制
写服务文件
1
sudo vim /lib/systemd/system/frps.service
1
2
3
4
5
6
7
8
9
10
11
12[Unit]
Description=fraps service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
#启动服务的命令(此处写你的frps的实际安装目录)
ExecStart=/your/path/frps -c /your/path/frps.ini
[Install]
WantedBy=multi-user.target启动frps
1
sudo systemctl start frps
设置自启动
1
sudo systemctl enable frps
- 如果要重启应用,可以这样,
sudo systemctl restart frps
- 如果要停止应用,可以输入,
sudo systemctl stop frps
- 如果要查看应用的日志,可以输入,
sudo systemctl status frps
- 如果要重启应用,可以这样,
使用supervisor来控制
首先先安装supervisor,我用的ubuntu
sudo apt install supervisor
创建 supervisor frps 配置文件,在 /etc/supervisor/conf.d 创建 frp.conf1
2
3[program:frp]
command = /your/path/frps -c /your/path/frps.ini
autostart = true同样是你的绝对路径。
写完以后,要重新加载一下supervisor1
2
3
4# 重启supervisor
sudo systemctl restart supervisor
# 查看supervisor运行状态
sudo supervisorctl statuswindows设置自启
参考https://segmentfault.com/a/1190000009353002
https://www.jianshu.com/p/fc9e4ea61e13
去 https://github.com/kohsuke/winsw/releases 下载对应版本的winsw,然后改名为winsw,放入到frp.exe同目录,同目录新建winsw.xml文件,输入:
1
2
3
4
5
6
7
8<service>
<id>frp</id>
<name>frp</name>
<description>用frp发布本地电脑网站到外网</description>
<executable>frpc</executable>
<arguments>-c frpc.ini</arguments>
<logmode>reset</logmode>
</service>然后以管理员权限运行cmd,进入到frpc目录,使用下面的命令安装启动服务
1
2
3
4winsw install
winsw start
winsw stop
winsw uninstall
客户端
客户端windows10 ,下载对应的版本解压,保留frpc和frpc.ini文件,修改frpc.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47[common]
#服务器公网地址
server_addr = 30.1.9.195
#服务器与客户端通讯端口
server_port = 7000
#测试ssh穿透连接
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
#服务器端口6000
# ssh -p 6000 user@30.1.9.195
#可以通过第三方ssh连接到内网的主机
[web]
type = tcp
local_ip = 127.0.0.1
local_port = 8000
#python -m http.server 开启一个python自带的http下载服务,默认端口8000
remote_port = 8001
服务器端口8001
#custom_domains = www.qluoman.top
#可以用手机浏览器输入x.x.x.x:8001访问到windows文件目录
[web2]
type = tcp
local_ip = 127.0.0.1
local_port = 4000
remote_port = 8002
#custom_domains = www.qluoman.top
#本地用hexo s 开一个测试服务,可以通过手机浏览器输入:x.x.x.x:8002访问本地静态博客
[test_static_file]
type = tcp
remote_port = 9005
#远程访问的端口
plugin = static_file
# 要对外暴露的文件目录,windows下目录格式直接从资源管理器路径拷贝过来,无需转换
plugin_local_path = G:\blog\blog
# 访问 url 中会被去除的前缀,保留的内容即为要访问的文件路径
plugin_strip_prefix = static
plugin_http_user = 123
#设置访问账号密码
plugin_http_passwd = 456
#通过手机浏览器输入:x.x.x.x:9005/static/ 输入账号密码,就可以访问到G:\blog\blog目录下文件frp还有很多诸如点对点,以及加密,压缩的选项,可以参照github文档实现,文档非常详细。