1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > frp内网穿透SSH

frp内网穿透SSH

时间:2019-05-13 02:23:14

相关推荐

frp内网穿透SSH

参考博客:

博客1(推荐): /post/52523

博客2: /qq_36981760/article/details/115713179

博客3: /qq_36981760/article/details/115713179

参考视频

(推荐,比较详细): /video/BV1p94y1y7ft/

背景

由于寒假放假回家, 回家之后就不能连接学校的服务器了(可以不用,但是不能没有),所以最近了解frp内网穿透技术通过连接公网ip就可以连接学校的服务器。但是查阅博客中有一些细节我感觉没有讲清楚(可能是我比较菜, 配了挺久), 所以特此缝合一篇博客供大家使用。

frp介绍

frp可以通过利用公网IP的的主机(frp服务端)将内网的主机(frp客户端)暴露给互联网,从而实现通过外网能直接访问到内网主机;frp有服务端和客户端,服务端需要装在有公网ip的主机上,客户端装在内网主机上(重点!!!)。

frp案例:

情况1.电脑在学校: 连接学校网的主机 --------> 学校服务器 (属于同一个局域网中可以直接连)

情况2.电脑在家(和服务器不在一个局域网中): 家里面的主机 --------> 公网ip --------> 学校服务器 (需要使用frp)

如果你是情况1, 那么恭喜你不需要使用内网穿透,

如果你是情况2, 我们的目的是通过内网穿透(frp)技术,本地主机通过访问公网主机ip(106.55.xxx.xxx)即可访问服务器主机。 举例我在家连接学校服务器

准备工作

(frp服务端) 一台公网主机,一般是云服务器(阿里云、腾讯云等都行) 注意:不能是192.168.xxx.xxx 这种ip地址开头的本地虚拟机主机,这样满足公网条件 (假设本案例使用的公网ip为106.55.123.123)(frp客户端)一台私网主机,一般是局域网里面服务器 注意:可以是192.168这种ip地址开头的虚拟机主机 (假设服务器ip为222.200.123.123)一台想要使用服务器的主机(ip理论上任意,可以访问公网即可)

环境说明:frp服务端, frp客户端都是Linux系统

1. frp服务端设置

说明: 内网穿透需要先配置frp服务端然后再配置frp客户端

1.1 frp的下载

官网下载地址: /fatedier/frp/releases

选择适合的版本下载(以v0.33.0版本为例)

查看Linux主机版本为

arch

查看结果,如果是“X86_64“即可选择”frp_0.33.0_linux_amd64.tar.gz

创建vpns目录用于存放frp服务端的安装包:(目录名称可以自定以)

mkdir vpns

切换到vpns目录下载frp服务端

cd vpns

1.1.1 双击下载

v0.33.0下载地址: /fatedier/frp/releases/tag/v0.33.0

下载后上传到frp服务端的vpns目录中即可

1.1.2 wget命令下载

在frp服务端的vpns目录下进行下载

wget /fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz

1.2 frp文件解压

tar -zvxf frp_0.33.0_linux_amd64.tar.gz

解压后如图所示

复制frp_0.33.0_linux_amd64文件夹并改名为frp,方便使用

cp -r frp_0.33.0_linux_amd64 frp

当前vpns目录下文件结构

1.3 删除冗余文件

cd frp

删除与frp服务端无关的文件

rm -rf frpc frpc.ini frpc_full.ini

删除后frp目录如下所示

1.4 配置frps.ini文件

vim frps.ini

默认初始化内容是这样的

[common]bind_port = 7000

复制内容 添加到文件末尾

dashboard_port = 7500token = 12345678dashboard_user = admindashboard_pwd = adminvhost_ssh_port = 6000vhost_rdp_port = 7001heartbeat_timeout = 60

更改后frps.ini文件内容如下

[common]bind_port = 7000dashboard_port = 7500token = 12345678dashboard_user = admindashboard_pwd = adminvhost_ssh_port = 6000vhost_rdp_port = 7001heartbeat_timeout = 60

:wq!保存退出

配置完如下

各个参数说明:

# bind_port 表示用于客户端和服务端连接的端口,这个端口号我们之后在配置客户端的时候要用到。bind_port = 7000# dashboard_port 是服务端仪表板的端口,在配置完成服务启动后可以通过公网ip:7500 进行访问dashboard_port = 7500# token是用于客户端和服务端连接的口令,自行设置并记录,稍后会用到。token = 12345678# dashboard_user 和 dashboard_pwd 表示打开仪表板页面(7500端口)# 登录的用户名和密码 可以自定义dashboard_user = admindashboard_pwd = admin# vhost_ssh_port 表示要用6000端口 作为ssh服务端口vhost_ssh_port = 6000# vhost_ssh_port 表示要用7001端口 作为rdp服务端口vhost_rdp_port = 7001# 心跳连接: 建议配置, frp 0.43.0版本如果不加,60秒就会自动断开连接!# frp服务端就加这一条,frp客户端每个服务都要加。heartbeat_timeout = 60

1.5 防火墙开放端口

防火墙相关操作: /qq_45056135/article/details/128172916

查看当前开放的端口

firewall-cmd --zone=public --list-ports

将7000, 7500, 6000, 7001端口开放

开放 7000 端口(frps服务端和frpc客户端建立连接)

firewall-cmd --zone=public --add-port=7000/tcp --permanent

开放7500端口(配置完成启动服务后可以通过浏览器访问 x.x.x.x:7500 , 其中x.x.x.x为frp服务端的ip, 查看frp服务运行信息。例如的是106.55.123.123:7500)

firewall-cmd --zone=public --add-port=7500/tcp --permanent

开放 6000 端口(用于和frp服务端和frp端建立ssh连接协议, 之后会讲到)

firewall-cmd --zone=public --add-port=6000/tcp --permanent

开放 7001 端口(用于和frp服务端和frp端)

firewall-cmd --zone=public --add-port=7001/tcp --permanent

使其立即生效

firewall-cmd --reload

查看当前开放的端口

firewall-cmd --zone=public --list-ports

如下所示表示端口已经开放

如果你的frp服务端是云服务器,在防火墙设置中开放7000, 7500, 6000, 7001端口确保端口真的开放了(因为云服务器中利用命令开启端口可能无效)

如下所示

1.6 运行frps服务端

在frp目录下运行

./frps -c frps.ini

如下所示表示运行服务端成功

检查公网ip的7500端口是否可以正常访问

例如我的公网ip是:106.55.123.123

106.55.123.123:7500

此时用浏览器访问 106.55.123.123:7500:7500 并使用自己设置的用户名密码登录(都是admin),即可看到仪表板界面

如下说明设置成功

到这里frp服务端设置已经完成

2. frp客户端设置

2.1 frp的下载

官网下载地址: /fatedier/frp/releases

选择适合的版本下载(以v0.33.0版本为例)

查看Linux主机版本为

arch

如下所示, 查看结果,如果是“X86_64“即可选择”amd64”

创建目录用于存放frp客户端安装包:

mkdir vpnc

切换到vpnc进行下载frp客户端

cd vpnc

2.1.1 双击下载

v0.33.0下载地址: /fatedier/frp/releases/tag/v0.33.0

下载上传到frp客户端的vpnc目录中

2.1.2 wget命令下载

切换到frp客户端的vpnc目录中(目录名称可以自定义)

利用wget命令进行下载frp

wget /fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz

2.2 frp文件解压

解压frp_0.33.0_linux_amd64.tar.gz文件

tar -zvxf frp_0.33.0_linux_amd64.tar.gz

解压之后目录结构如下

复制文件夹并改名为frp,方便使用

cp -r frp_0.33.0_linux_amd64 frp

当前vpnc目录下文件结构

2.3 删除冗余文件

cd frp

删除与frp客户端无关的文件frpsfrps.inifrps_full.ini

rm -rf frps frps.ini frps_full.ini

删除后frp目录如下所示

2.4 配置frpc.ini文件

vim frpc.ini

frpc.ini默认是这样的

[common]server_addr = 127.0.0.1server_port = 7000[ssh]type = tcplocal_ip = 127.0.0.1local_port = 22remote_port = 6000

修改server_addr为frp服务端ip

server_addr = 106.55.123.123

添加toke口令和frp服务端的token口令一致

token = 12345678

复制内容,添加到文件末尾

[rdp]type = tcplocal_ip = 127.0.0.1 local_port = 3389remote_port = 7001heartbeat_timeout = 60

更改后frpc.ini文件内容如下

[common]server_addr = 106.55.123.123server_port = 7000token = 12345678[ssh]type = tcplocal_ip = 127.0.0.1local_port = 22remote_port = 6000heartbeat_timeout = 60[rdp]type = tcplocal_ip = 127.0.0.1 local_port = 3389remote_port = 7001heartbeat_timeout = 60

注意:[ssh] [rdp] 这种头不能重名

文件各个参数说明:

[common]# server_addr 表示frp服务端的ip地址server_addr = 106.55.123.123# 表示frp服务端的bind_port 7000server_port = 7000# token 口令 frp服务端客户端需要一致token = 12345678[ssh]# 连接类型 一般都是tcptype = tcp# frp客户端ip地址 写127.0.0.1或者222.200.123.123 都可以local_ip = 127.0.0.1# 表示frp客户端的22端口号和frp服务的6000端口号相对应# 如果需要使用ssh服务frp客户端需要开放22端口,同时frp服务端需要开放6000端口local_port = 22remote_port = 6000# 心跳连接: 建议配置, frp 0.43.0版本如果不加,60秒就会自动断开连接!# frp服务端就加这一条,frp客户端每个服务都要加。heartbeat_timeout = 60[rdp]# 连接类型 一般都是tcptype = tcp# frp客户端ip地址 写127.0.0.1或者222.200.123.123 都可以local_ip = 127.0.0.1 # 表示frp客户端的3389端口号和frp服务的7001端口号相对应# 如果需要使用rdp服务,frp客户端需要开放3389端口,同时frp服务端需要开放7001端口 local_port = 3389remote_port = 7001# 心跳连接: 建议配置, frp 0.43.0版本如果不加,60秒就会自动断开连接!# frp服务端就加这一条,frp客户端每个服务都要加。heartbeat_timeout = 60

2.5 防火墙开放端口

防火墙相关操作: /qq_45056135/article/details/128172916

查看当前开放的端口

firewall-cmd --zone=public --list-ports

将7000, 7500, 6000, 7001端口开放

开放 7000 端口(frp客户端和frps服务端建立连接)

firewall-cmd --zone=public --add-port=7000/tcp --permanent

开放22端口(用户建立ssh连接)

firewall-cmd --zone=public --add-port=22/tcp --permanent

开放3389端口(用户建立rdp连接)

firewall-cmd --zone=public --add-port=3389/tcp --permanent

使其立即生效

firewall-cmd --reload

检查是否成功开启

firewall-cmd --zone=public --list-ports

如下表示成功开启7000, 3389, 22端口

2.6 运行frps客户端

注意:运行客户端之前一定要保证frp服务端是开启的

运行frps客户端

./frpc -c frpc.ini

如下所示一直在等待的情况说明内frp服务端frp客户端建立连接成功(可能是配置问题,或者是防火墙的问题, 确实frp服务端和客户端的7000是否都已经打开了)

如下图所示表示frp服务端frp客户端建立连接成功

到了这里基本上就差不多成功了

服务端和客户端配置文件的对应关系

如果我们需要修改bind_port等参数,服务端和客户端的值对应即可

注意:修改完端口参数之后要开放相应的防火墙端口!!!

1,2步配置成功说明frp服务端frp客户端已经建立了连接

通过刚刚的配置

本地主机连接公网:106.55.123.123:6000等价于连接222.200.123.123:22

本地主机连接公网:106.55.123.123:7001等价于连接222.200.123.123:3389

这里的本地主机可以是任意主机,只要可以连接公网即可!!!

3. 本地主机(第三台主机)连接服务器

SSH服务为例: 本地主机需要连接内网服务器的ssh服务之前是连接222.200.123.123的22端口,现在只要通过连接106.55.123.123的6000端口即可

我这里是使用xshell连接服务器主机222.200.123.12322端口

注意:利用本地主机连接公网时 (必须保证frp服务端和客户端都是开启状态, 而且是成功开启的, 稍后我们会讲解如何后台运行)

3.1 设置连接信息

我们通过连接frp服务端的106.55.123.123的6000端口即可访问

222.200.123.123的22端口

3.2 设置用户名信息

这里是frp客户端的用户名和密码

这里是frp客户端的用户名和密码

这里是frp客户端的用户名和密码

如下图所示表示成功访问服务器主机: (内网穿透成功)

4. frp 客户端服务端放在后台运行

在进行后台运行之前最好是证明你前面三步都是成功的,不建议一开始就后台运行,因为这样如果出现问题比较难发现

4.1 开启服务端后台运行

frp服务端后台运行(按Ctrl+C退出后会依然运行)

nohup ./frps -c frps.ini &

查看是否运行成功

ps -ef | grep frp

如下所示表示服务端后台运行成功

同时frp目录下会多一个nohup.out文件

关闭后台运行(查到到frps进程号关闭即可)

kill -9 12096

4.2 开启客户端后台运行

frp客户端后台运行(按Ctrl+C退出后会依然运行)

nohup ./frpc -c frpc.ini &

如下所示表示frp客户端后台成功运行

同时frp目录下会多一个nohup.out文件

关闭后台运行(查到到frpc进程号关闭即可)

kill -9 15166

5. PyChram

如果你使用pychram连接,同理

将以前的222.200.123.123的22端口(私网)

改为106.55.123.123的6000端口即可(公网)

如果你还遇到其他问题可以参考以下博客

参考博客:

博客1(推荐): /post/52523

博客2: /qq_36981760/article/details/115713179

博客3: /qq_36981760/article/details/115713179

参考视频

(推荐,比较详细): /video/BV1p94y1y7ft/

本人水平有限,如有错误欢迎指正交流!!!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。