FRP搭建内网穿透及答疑

Q&A

Q:为什么要用内网穿透
A:因为没有公网IP,现在的公网IP申请异常困难,甚至申请不到(工信部投诉中国移动也是一样的)

Q:内网穿透的工具有哪些
A:内网穿透的工具中比较有名的就是花生壳和FRP两种

Q:为什么不使用花生壳进行穿透
A:花生壳的免费版本只有1Mbps的带宽,而且只有两条映射。需要提高带宽或者映射就需要付费

Q:映射是什么
A:映射就是链接的线路,正常情况下SSH需要一条链路,部署一个项目需要一条,那么就没有映射了,而“物理服务器”肯定不只是部署一个项目,所以要么付费购买,要么另寻他路

Q:为什么使用FRP搭建内网穿透
A:FRP是免费的,而且没有映射线路的限制,虽然搭建的时候比花生壳麻烦,但是优点也很明显

Q:听说使用FRP需要使用域名+端口或者IP+端口
A:在不使用Nginx的时候确实需要,但是如果使用了Nginx的话,就可以直接使用域名进行访问了,如果没有域名,那确实是只能使用IP+端口的方式访问

Q:为什么需要云服务器
A:因为是自己搭建的FRP内网穿透,那么就需要一台拥有公网IP的服务器作为中转站

Q:云服务器的配置要什么要求
A:由于云服务器只是一个中转的服务器,因此CPU和内存方面没有太多的要求,可以使用现有的云服务器也可以开一台轻量服务器,因为轻量服务器性能和价格偏低,但是带宽会比ECS服务器高很多,所以轻量服务器会更划算

服务端

服务端也就是云服务器,FRP需要下载的版本是最新版本的Linux版本,不要最新版的话也可以自行下载,x86_64的处理器记得选择amd64.tar.gz版本
1、在Linux的/usr中新建文件夹frp,通过ftp将下载好的frp传入该文件夹内并且解压,然后删除frpc、frpc.ini、frpc_full.ini三个文件,会用到命令分别是:

(1)wget下载命令:

wget https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_amd64.tar.gz

(2)解压命令:

tar -zxvf frp_0.44.0_linux_amd64.tar.gz

(3)进入frp文件夹

cd frp_0.44.0_linux_amd64

(4) 删除客户端配置文件

rm -rf frpc
rm -rf frpc.ini
rm -rf frpc_full.ini

2、修改、补充frps.ini配置文件

vi frps.ini

按下i键将下面信息根据自己需求进行修改

#与frp客户端链接的端口,可自行设置
bind_port = 7000 
#frp面板的端口
dashboard_port = 7500 
#有域名的话,可以填写,没有的话就不用了,这里些主域名就行
subdomain_host = xxxxx.com 
#token的作用不过多介绍,自行设置,要记住,一会客户端用得上
token = 123456 
#frp面板的登录账号
dashboard_user = xxxx
#frp面板的登录密码 
dashboard_pwd = xxxx 
--------------------------------
#如果需要用到http或者https那就需要配置以下这个,如果部署多个web服务,那么也是这两个端口,不需要另外设置端口,只要在客户端设置就行
#这个是http的端口
vhost_http_port = 8083 
# https的端口
vhost_https_port = 8084 
---------------------------------
# 设置日志显示级别{debug, info, warn, error)
log_level = info
# 设置日志最大天数
log_max_days = 999
#超时时间
heartbeat_timeout = 90
#最大连接数
max_pool_count = 15

3、启动frps

./frps -c frps.ini

4、登录面板,使用ip+7500端口。输入账号密码,就可以看到面板了
5、这样的启动在不关闭ssh窗口的时候,是可以访问到的,但是一旦关闭了窗口就会关闭进程,所以要用Screen来运行
6、服务端的开机自启动可以不做也可以做,做的话参考客户端的开机自启动方法,我的建议是不做,因为云服务器重启后也是可以ssh连接上去的。

客户端

客户端就是家里的物理服务器,下载建议使用在线下载的方式,步骤跟服务端的1、2、3步一样的,第4步不一样,具体看
4、删除服务端的配置文件

rm -rf frps
rm -rf frps.ini
rm -rf frps_full.ini

5、添加、修改frpc.ini配置文件

vi frpc.ini

具体配置如下:

[common]
#填写服务端的IP
server_addr = xx.xx.xx.xx
# 服务端的bind_port设置的端口
server_port = 7000
# 服务端设置的token
token = 123456

[ssh]
type = tcp
local_port = 22
local_ip = 127.0.0.1
remote_port = 8885
[rdp]
type = tcp
local_ip = 127.0.0.1           
local_port = 3389
remote_port = 7001  
[smb]
type = tcp
local_ip = 127.0.0.1
local_port = 445
remote_port = 7002
[yi]
type = http
local_port = 9050
subdomain = yi
[bt]
type = http
local_port = 8880
subdomain = bt
[tuh]
type = http
local_port = 10088
subdomain = tuh
[tu]
type = http
local_port = 10089
subdomain = tu

[ssh]:这个就是项目服务的名称,不能重复
type:链接的协议,web服务就是http、https,ssh就是tcp,还有udp等
local_port:项目部署在客户端上使用的端口,不是外网访问的端口 local_ip:本地的ip,可以直接写127.0.0.1
subdomain:二级域名的前面部分,主域名我们在服务端已经设置好了
根据自己的需求添加或删除这些项目和端口

6、启动frp客户端

./frpc -c frpc.ini

到这里就完成了FRP的内网穿透的基本设置。
但是会遇到断电的问题或者重启的情况,那么这时候就需要设置FRP开机自启动
7、设置开机自启动
(1)使用pwd查看路径
(2)将frpc.ini文件复制到/etc/frpc文件夹里,如果没有这个文件夹,就使用mkdir新建一个

sudo cp frpc.ini /etc/frpc/frpc.ini

(3)将frpc复制到/usr/local/bin/bin/frpc下,没有的就新建一个

sudo cp frpc /usr/local/bin/frpc

(4)写入内容,输入的时候会自动新建文本

sudo vi /usr/lib/systemd/system/frpc.service

内容如下

[unit]
Description=frpc
After=multi-user.targe

[Service]
TimeoutStartSec=30
#写(2)(3)步这两个文件的位置
ExecStart=/usr/local/bin/frpc -c /etc/frpc/frpc.ini
ExecStop=/bin/kill $MAINPID

[Install]
WantedBy=multi-user.target

(5)设置自动启动

sudo systemctl enable frpc

(6)启动frpc

sudo systemctl start frpc

(7)查看运行状态

sudo systemctl list-units |grep frpc
sudo systemctl status frpc

FRP内网穿透就到此为止啦,请看后续:内网穿透之Nginx配置

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值