搭建 Frp 来远程内网 Windows 和 Linux 机子
一、使用一键脚本搭建服务端
Frp 这个内网穿透项目的官方地址为 https://github.com/fatedier/frp ,不过我们今天搭建服务端时不直接使用这个,而是使用了网友做的一键安装脚本,地址为 https://github.com/clangcn/onekey-install-shell/tree/master/frps 。
那么我们就开始吧,emmmm,对了,你应该有自己的服务器或 VPS 吧?没有的话,您就看个乐呵吧 O(∩_∩)O
首先使用 SSH(推荐 MobaXterm)登录服务器,然后贴入以下代码进行安装(CentOS7 64 位亲测可行):
|
1
2
3
4
|
wget --no-check-certificate https://raw.githubusercontent.com/clangcn/onekey-install-shell/master/frps/install-frps.sh -O ./install-frps.sh
chmod 700 ./install-frps.sh
./install-frps.sh install
|
三行分别是下载脚本、改变权限、执行安装,安装过程一般按照默认值(直接回车)就行了,就是有些常用的端口肯定被占用了,所以要改一下,具体过程可参考网上的文章《centos 一键搭建内网穿透工具 frp 服务端》。一切顺利的话,在最后会列出所有重要信息,包括客户端绑定的端口(bind_port),服务端的管理(查看客户端在线情况)端口(dashboard_port)以及用户名和密码,还有服务端和客户端的 token 值。
最重要的一点,以上出现的所有端口,都需要在服务器上放行,可查找具体系统的放行方法,我是用宝塔面板操作的:

不然的话,客户端启动的时候会在短暂延迟后关闭,没有什么提示。
安装完成后,frps 已经成为一个服务了,系统重启后会自动运行(自己手动搭建的话,这方面要自己处理)。这时我们输入 frps 命令,就可以看到用法了:

功能都显而易见,就不多说了,比如,输入 frps config 可进行配置,打开的是一个文本编辑页面,按 I 键进入编辑状态,按 ESC 退出编辑状态,输入 :wq 回车保存并退出,输入 :q 回车退出……
再比如,输入 frps version 可查看当前 frps 版本,我这个目前是 0.20.0,不是最新(0.27.0)的:

好了,服务端就说这么多了。
二、Windows 客户端
客户端没听说有什么一键脚本,而且也确实不需要,因为比较简单。
我们只需要在 https://github.com/fatedier/frp/releases 下载一个最新版:

我们只需要其中的 frpc.exe 和 frpc.ini 这两个文件就行了:

将这两个文件拷贝到某个目录,然后我们再在其中建一个 start-frpc.bat 文件,内容为:
|
1
2
3
|
frpc -c ./frpc-win-home.ini
pause
|
意思是,启动 frpc 程序,并使用当前目录的配置文件(我改了个名字) frpc-win-home.ini。

文字版为:
|
1
2
3
4
5
6
7
8
9
10
11
|
[common]
server_addr = #<服务器 IP>
server_port = #<服务端绑定 IP>
token = #<服务端约定 token>
[mstsc-home] #<隧道名称,须唯一>
type = tcp
local_ip = 127.0.0.1
local_port = 3389 #<本地需要连接的端口,此处为远程桌面>
remote_port = #<服务端对应的端口>
|
这样的话,我们运行 start-frpc.bat 这个批处理文件,就会启动 frpc 程序了,并且配置了一个适用于远程桌面程序的隧道。效果就是,我们在公司的远程桌面程序中,填入你的服务器 IP(server_addr)+ 对应端口(remote_port),实际会访问到你家里(启动了这个 frpc 客户端)电脑的指定端口(local_port),这样就达到了远程内网机器的目的。其中 remote_port 无需在服务端配置,不过要在服务器防火墙中放行。
运行效果如图:

该窗口不能关闭,关闭就结束了。开机运行可将该批处理文件的快捷方式添加到系统的启动目录里(C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp),隐藏窗口方法请自行百度(可使用 PS Tray Factory)。
三、Linux 客户端
首先当然还是下载客户端程序啦,这个也是根据系统来的,我下的是 frp_0.27.0_linux_arm.tar.gz ,可以在 Windows 电脑中先将需要的文件取出来:

也是只需一个 frpc 程序和一个配置文件,当然,配置文件我们还要修改。
将所需文件传到 Linux 电脑(我是使用香蕉派 Bpi-M2B)中,推荐使用 Swish 软件:

最后我们 Linux 电脑中有 3 个文件:

多出来的那个文件也就是启动脚本文件 start-frpc.sh :
|
1
2
3
|
cd /usr/dlgcy/frp
./frpc -c ./frpc-bpi.ini
|
与 Windows 中不同的是,这里先要转到这个目录,才能执行程序;还有,这个文件需要可执行权限(chmod 755 start-frpc.sh)。
再来看看配置文件:

基本上和 Windows 上的是一样的;不过可以看到我配置了两个隧道,分别用于 SSH 和 VNC 程序;而服务端无需配置和重启,还是很方便的;不过要记得在服务器上将相关端口放行。
开机启动的话,以我用的 CentOS7 为例,就是在 /etc/rc.d/rc.local 文件(也需要可执行权限)中添加指令:
|
1
2
|
nohup /usr/dlgcy/frp/start-frpc.sh &
|
nohup & 组合表示在后台运行。
四、监控页面
还记得安装的时候配置的 dashboard_port 吗?这个就是你在浏览器访问你服务器 IP 加上这个端口,然后输入用户名和密码登录,会打开一个监控页面:

主要就是一个信息概览页面和一个客户端连接状态页面(可以看到 Windows 端的一个隧道和 Linux 端的两个隧道都在线),比较简单,不过挺方便的。
好了,祝大家使用愉快!
搭建 Frp 来远程内网 Windows 和 Linux 机子的更多相关文章
- 搭建手机web服务器-----内网穿透(无需Root)
搭建手机web服务器-----内网穿透(无需Root) 一.内网穿透部分 前言: 网上内网穿透的方法很多,像花生壳.Ngrok.Frp等等,但是大多都需要获取手机root权限 本文使用的软件是Term ...
- linux下内网端口转发工具:linux版lcx [实现远程内网维护]
这个工具以前使用的初衷是内网渗透,需要将内网ssh端口转发到外网服务器上.但这个工具同样适用于运维工程师进行远程内网维护. 当然这一切的前提是内网可以访问外网,检测方法当然就是直接ping 一个外网I ...
- [转帖]利用hydra(九头蛇)暴力破解内网windows登录密码
利用hydra(九头蛇)暴力破解内网windows登录密码 https://blog.csdn.net/weixin_37361758/article/details/77939070 尝试了下 能够 ...
- 外网zabbix-server使用主动模式监控公司内网windows服务器
外网zabbix-server使用主动模式监控公司内网windows服务器 1.Zabbix Agent active批量调整客户端为主动模式监控将Template OS Windows模板调整为主动 ...
- 使用putty进行ssh tunnel远程内网机器
通常我们通过登录具有外网ip的远程机器来连接内网的机器:本文介绍,通过putty进行ssh tunnel,进而达到使用本机直接连接远程内网机器: 1,在putty中创建一个session,输入具有外网 ...
- 六、利用frp穿透连接内网的linx系统和windows系统
服务端的配置 # frps.ini [common] bind_port = 7000 说明:防火墙放行该端口 启动:./frps -c ./frps.ini 后台启动:nohup ./frps -c ...
- ECS上nginx搭建反向代理通过内网访问阿里云OSS服务
对于付不起钱的小伙计,为了给公司省钱,想尽一切招数.今天就来分享一个使用阿里云OSS存储搭配CDN使用的网站服务器部署方法. 简介 阿里云OSS 阿里云提供的一种文件存储方案,和我们以前接触的百度云B ...
- 公司内网搭建代理DNS使用内网域名代替ip地址
企业场景 一般在企业内部,开发.测试以及预生产都会有一套供开发以及测试人员使用的网络环境.运维人员会为每套环境的相关项目配置单独的Tomcat,然后开放一个端口,以 IP+Port 的形式访问.然而随 ...
- 搭建基于HTTP协议内网yum仓库
目录 1. 前言 2. 把rpm包下载到本地 3. 配置nginx对外提供服务 4. 配置本地repo文件 5. 生成repodata信息 6. 检查及使用 7. 对管理机器上的仓库进行更新 参考资料 ...
随机推荐
- hello tensorflow,我的第一个tensorflow程序
上代码: import tensorflow as tf if __name__=='__main__': g = tf.Graph() # add ops to the user created g ...
- Winform中双击DevExpress的TreeList的树形节点怎样获取当前节点
场景 DevExpress的TreeList怎样设置数据源,从实例入手: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10254 ...
- Linux常见目录说明
常见目录说明 目录 应放置档案内容 /bin/ 存放二进制可执行文件,系统的命令(ls,cat,mkdir等),是/usr/bin/目录的软链接. /sbin/ 存放系统命令,超级用户可以执行.是/u ...
- 「杂谈」最有可能成为第五个一线城市,苏州 or 杭州?
最有可能成为第五个一线城市,苏州 or 杭州? 一线城市的几个硬指标 所谓的"一线城市",并不是政府提倡或者说是官方发布的城市称号,是最近十几年因房地产行业的强势崛起,一些媒体尤其 ...
- Android 网络加载通用Loading
为了用户体验用好,App在网络请求时通常都会显示个进度显示圈圈,提示用户耐心等待,最脍炙人口的莫过于登录啦. 接下来我们就通过Dialog来实现,然后在BaseActivity,BaseFragmen ...
- Smobiler针对百度文字识别SDK动态编译与运行
下载百度ocr 在百度ocr平台下载android资源文档 文档地址:https://ai.baidu.com/docs#/OCR-Android-SDK/top sdk下载地址:http://ai. ...
- [20190524]使用use_concat or_expand提示优化.txt
[20190524]使用use_concat or_expand提示优化.txt --//上午看了链接https://connor-mcdonald.com/2019/05/22/being-gene ...
- [日常] 安装windows+deepin双系统
我的测试电脑上安装了三个系统,分别是win7 , ubuntu16.04 ,deepin15.11下面的步骤是安装deepin系统的过程 1.制作启动u盘,直接使用官方工具制作就可以了,我的已经制作好 ...
- 解决vue+springboot前后端分离项目,前端跨域访问sessionID不一致导致的session为null问题
问题: 前端跨域访问后端接口, 在浏览器的安全策略下默认是不携带cookie的, 所以每次请求都开启了一次新的会话. 在后台打印sessionID我们会发现, 每次请求的sessionID都是不同的, ...
- Node版本管理器NVM常用命令
NVM是什么?nvm (Node Version Manager) 是Nodejs版本管理器,可对不同的node版本快速进行切换. 为什么要用NVM?基于node的工具和项目越来越多,但是每个项目使用 ...
