环境配置:
一个阿里云带有外网ip的ECS服务器 系统:centos 8
一个想要进行内网穿透的服务器 系统:ubuntu 16
参考文章
https://sspai.com/post/52523
一,了解一下原理。
简单来说就是一台没有公网ip的服务器,利用有公网ip的服务器的ip。让这两台设备连接。然后把这两台看成是一台就行了。然后这个frp就相当于把它俩连接起来的工具。
可以先了解一下其他的知识,比如正向代理与反向代理。这篇文章其实讲的挺好的。vpn就使用了正向代理,frp中使用了反向代理。
二,需要的准备
1,一台有公网ip的服务器,主要得有公网ip。那篇文章说的是VPS。
2,最终要穿透的目标。
三,服务器设置
这个服务器指的是带有公网ip的服务器。
1,下载
先去这个网站找一个版本。使用arch
命令查看是“X86_64“即可选择”amd64”,根据你的系统选择我选的amd的。
https://github.com/fatedier/frp/releases
下载之后放到服务器上,也可以使用wget命令从服务器下载 wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz
2,解压
使用命令tar -zxvf frp_0.33.0_linux_amd64.tar.gz
进行解压
3,配置服务器端
进入frp_0.33.0_linux_amd64文件夹中,将frpc ,frpc.ini进行删除。因为c结尾代表client,是客户端所使用的,服务器端用不到所以要删除。
然后配置frps.ini文件。
使用vim frps.ini
修改文件
如下所示
[common]
bind_port = 7000
dashboard_port = 7500
token = 12345678
dashboard_user = admin
dashboard_pwd = admin
vhost_http_port = 10080
vhost_https_port = 10443
dashboard_port是服务端仪表板的端口。开启后可使用ip+dashboard_port访问。
token是另外一个没有公网ip的电脑连接的密码。
dashboard_user和dashboard_pwd表示打开仪表板页面登录的用户名和密码.
bind_port表示用于客户端和服务端连接的端口.也就是没有ip电脑所要连接的端口.它俩绑在一起的绳子.
4,开启frps
这个需要一直开启.所以可以学习一下screen这个工具.也可以学习一下 nohup命令.这里就不多说了.
./frps -c frps.ini
四,客户端设置
这个步骤跟前面的差不多.
不一样的地方是
1,删除的是服务器的配置留下的是客户端的配置,即留下来frpc ,frpc.ini.
2,进行配置的是frpc.ini
vim frpc.ini
具体配置如下所示.
[common]
server_addr = x.x.x.x
server_port = 7000
token = 12345678
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
server_addr为服务端IP地址
token是刚才服务器所编写的连接服务器的密码.
server_port是连接服务器所使用的端口号
其中ssh的名字是自己起的.主要的作用是,通过访问带有公网ip的服务器的6000端口来访问没有公网ip的22端口。
之后使用ssh连接的时候,就可以通过带公网ip的6000端口来访问要访问的电脑的22端口了。
注意:防火墙问题要弄好。要不然也没办法访问。
写的比较糙,下次再补充。