FRP内网穿透初体验!
2024/6/2·4 views
内网穿透有几款软件是比较流行的
ngrok | Unified Application Delivery Platform for Developers
这里我选择使用frp,介绍下如何通过frp使用本地http服务!
准备工作
- 有公网ip的云服务器一台
- 电脑/服务器一台
这里默认大家已经将frp的包放在了有公网ip的服务器和电脑/服务器中
部署服务端
这里我选择将frp放在/usr/local/frp目录,编辑frps.toml文件
toml
bindPort = 7000
vhostHTTPPort = 8000 # 添加http端口
服务器防火墙需要开启7000、8000端口
启动
/usr/local/frps -c /usr/local/frps.toml
也可以使用systemd管理服务
`
shell
vim /etc/systemd/system/frps.service
输入
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.toml
[Install]
WantedBy = multi-user.target
执行命令
shelll
systemctl daemon-reload # 重新载入配置
systemctl start frps # 启动服务
systemctl enable frps # 开机自启
至此,服务端配置结束
部署客户端
首先启动本地http服务,不管是nginx,apache还是node,php启动本地服务都行。这里我选择nginx,服务使用80端口
修改frpc.toml配置文件
toml
serverAddr = "codeemo.cn"
serverPort = 7000
[[proxies]]
name = "test-http"
type = "http"
customDomains = ["frp.codeemo.cn"]
localIP = "127.0.0.1"
localPort = 80
然后执行命令
shell
frpc -c ./frpc.toml
可以看到[test-http] start proxy success表示启动成功了
接着就可以使用frp.codeemo.cn:8000 访问本地的80口服务了。
我想使用80端口
如果想使用80或者443端口进行访问,因为我服务器上已经安装了nginx,80、443端口已经被占用了,这时候可以做一层代理,这样一来,防火墙的8000端口也可以不放行了!
conf
server
{
listen 80;
server_name frp.codeemo.cn;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8000;
}
}
我在nginx中新建一个server,然后使用frp.codeemo.cn作为server_name,将请求代理到本地的8000端口,如果需要设置https,可以直接在这个vhost中设置。
结语
初次使用,难免会有纰漏、错误,还请指正!