Frp内网穿透搭建,家庭主机对外提供接口,支持ssh访问
Frp内网穿透搭建,家庭主机对外提供接口,支持ssh访问
1.使用场景:
需求1.家中服务器 ubuntu 主机,跑接口服务,需要对外暴漏,
需求2.同时需要在外网ssh远程
关键词: frp内网穿透,斐讯K3C 使用frp服务,ubuntu开启sshservice
以下是记录:
2.所需工具:
1.公网VPS一台
搭建frp服务,这里使用TX云为例,需要配置安全组打开指定端口
可以使用Xshell正常登录
[申请,注册VPS,不在本文讨论范围,请自行搜索]
2.路由器
支持Frp设置,这里使用斐讯K3C为例,使用openwrt也可以
注意,frp版本要和服务器一致]
如果使用主机设备当作Frp客户端,大致方式一致,可以参考官方文档,或者搜搜
3.本地Ubuntu 主机
家中Ubuntu 主机,部署接口服务,支持外网访问,同时支持外网ssh到主机 ,后面需要装sshserver
4.其他
Xshell 工具,免费授权下载地址
3.部署步骤
1.VPS 安装 Frp 服务
Xshell登录vps,查看vps架构,一般是x86_64 ,输入 arch 查看
root@VM-16-5-ubuntu:~/frp/frp_0.21.0# arch
x86_64
打开 frp 首页,右侧选择 Releases 66 ,或者直接打开下载地址 ,

选择适合的平台,一般是 frp_0.38.0_linux_amd64.tar.gz ,
注意,这里的版本是0.38.0,后续路由器版本不一致,无法识别,需要降级
下载后,上传到 vps,解压 ,
使用Xshell,新建项目目录,cd 到项目目录,直接把 下载文件到xshell窗口,等待上传完毕
配置 frps.ini 文件,可以使用 宝塔或者vim ,注意这个文件,后面客户端配置需要和它保持一致
配置参数:基本都在注释里了
[common]
frps绑定端口 (必选)
bind_port = 7000
认证密码,客户端须与服务器一致
token = 123456
仪表盘端口,只有设置了才能使用仪表盘(即后台)
dashboard_port = 7500
仪表盘访问的用户名密码,如果不设置,则默认都是 admin
dashboard_user = admin
dashboard_pwd = admin
最后,重要一步,启动frp服务
frpc -c ./frpc.ini
看到 start proxy success 表示成功
这样启动服务,窗口关闭就会停止,可以使用后台启动
sudo nohup /root/frp/frp_0.21.0/frps -c /root/frp/frp_0.21.0/frps.ini &
如果提示 没有nohup,请安装
2.路由器配置Frp客户端映射
frp服务端配置完毕,可以尝试打开面板,查看是否可以正常登录,用户名密码 admin 刚才配置的
frp面板地址:vps地址:7500
这里的7500,是在上面配置的,可以修改
注意:如果打不开?,请检查vps安全策略,需要放行端口号,打开防火墙-添加规则-添加 7500 和 7000 端口

配置完毕效果

接下来配置客户端
我使用的路由器frp插件,直接在路由器配置,如果使用frp客户端,配置方式差不多,请参照官方文档
路由器配置,打开路由器后台,找到frp服务,复制粘贴以下配置
frp客户端配置:
[common]
server_addr = xxx.xxx.xxx.xxx
server_port = 7000
token = 123456[web]
type = tcp
local_ip = 192.168.2.157
local_port = 8080
remote_port = 8080[ssh]
type = tcp
local_ip = 192.168.2.157
local_port = 22
remote_port = 6022
参数解释
[common]
server_addr = xxx.xxx.xxx.xxx 服务器地址,就是你vps地址
server_port = 7000 服务器端口号,保持和vps 刚才配置的frps.ini一致
token = 123456 服务密码,保持和vps刚才配置的frps.ini一致
[web] 这就是名字,在面板显示,以视区分,看下图面板名字
type = tcp 连接方式,一般就选tcp,其他我也不会
local_ip = 192.168.2.157 这里是本地主机地址,例如就是我ubuntu主机地址,设备自己可以在wifi信息中查看
local_port = 8080 本地端口映射,意思就是,ubuntu主机暴漏的端口
remote_port = 8080 远端端口映射,意思就是,vps主机端口
[ssh] 备注名字
type = tcp
local_ip = 192.168.2.157
local_port = 22
remote_port = 6022
local_port和 remote_port 开始不好理解,这里解释下
我理解就是,假如本地主机ubuntu需要暴漏8080接口提供tomcat服务,在外网访问vps主机8080端口,vps会请求本地主机8080端口
当然,断后不一定是一样的,后面配置的 6022对应22端口就是例子
当ssh请求vps6022端口,可以请求到主机22端口[设置ssh默认端口]
简单画个图,希望能帮助理解

打开Frp面板查看frp服务端和客户端绑定状态

斐讯路由器- 功能设置-示例

顺利到这里,基本就配置成功了
3.测试
1.8080端口
本地主机ubuntu,安装docker,开启tomcat服务,暴漏8080端口,
先测试局域网可以正常访问,
将电脑切换到手机热点,访问 vps:8080 ,可以正常访问到本地主机的tomcat页面,证明成功
2..远程shell到家中主机
刚才已经将本地主机22端口暴漏
需要访问家中主机,只需要xshell配置,服务器地址 : vps地址:6022
用户名密码: ubuntu 用户账户和密码
这里发现,连不上 。。。。
因为,一般ubuntu主机只安装ssh客户端,不安装服务端
sudo apt install openssh-server
安装完成后,SSH服务将自动启动。要验证安装是否成功并且SSH服务正在运行,请键入以下命令,该命令将显示SSH服务器状
sudo systemctl status ssh

再次xshell远程主机,顺利的话,成功!
4.附录:
1.禁止服务器休眠
发现ubuntu会自动休眠
查看是否开启休眠模式
systemctl status sleep.target
yaron@yaron-T420s:~$ systemctl status sleep.target
返回结果
● sleep.target - Sleep
Loaded: loaded (/lib/systemd/system/sleep.target; static; vendor preset: enabled)
Active: inactive (dead)
Docs: man:systemd.special(7)
执行关闭休眠功能的命令,如下
yaron@yaron-T420s:~$ sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
[sudo] yaron 的密码:
Created symlink /etc/systemd/system/sleep.target → /dev/null.
Created symlink /etc/systemd/system/suspend.target → /dev/null.
Created symlink /etc/systemd/system/hibernate.target → /dev/null.
Created symlink /etc/systemd/system/hybrid-sleep.target → /dev/null.
再次查看
yaron@yaron-T420s:~$ systemctl status sleep.target
● sleep.target
Loaded: masked (Reason: Unit sleep.target is masked.)
Active: inactive (dead)
yaron@yaron-T420s:~$
2.服务后台运行
开启定制任务或者后台运行
sudo nohup /root/frp/frp_0.21.0/frps -c /root/frp/frp_0.21.0/frps.ini &
3.xshell配置

感谢以下作者:
Tcping下载地址 带端口Ping测试
编辑器支持markdown有点别扭,很多代码引用还要自己改? 用的Typora
Frp内网穿透搭建,家庭主机对外提供接口,支持ssh访问的更多相关文章
- 树莓派FRP内网穿透及自启动
内网穿透的步骤和文件存档 实验室在远方部署了电脑主机来采集数据和图片,每次去调试会很麻烦,因而使用FRP内网穿透使得我们可以在实验室访问主机. 主要功能 实现远程可访问和开机自启FRP程序服务 安装和 ...
- frp内网 穿透映射使内网svn可外网访问
起因 公司svn目前部署在内网服务器上,现在想在家中也可以使用,因此需要外网访问内网的工具 经过 使用过几个产品: utools,一个小巧的windows下的工具,内网映射只是它的一个小功能,支持tc ...
- 【网络】内网穿透方案&FRP内网穿透实战(基础版)
目录 前言 方案 方案1:公网 方案2:第三方内网穿透软件 花生壳 cpolar 方案3:云服务器做反向代理 FRP简介 FRP资源 FRP原理 FRP配置教程之SSH 前期准备 服务器配置 下载FR ...
- frp 内网穿透访问内网Web服务
ps:最近想要通过域名(公网)访问或者测试在本地搭建的 web 服务(不想在公网IP服务器上再部署个服务,也不想通过teamview等工具远程卡到爆!), 由于本地机器没有公网 IP,无法将域名解析到 ...
- frp内网穿透学习
前言 因为自己在内网,但是目标站在外网,这时候可以通过内网穿透工具,将接收到的请求转发到内网,实现在内网的msf可以控制外网的靶机. 也看了一些Ngrok,花生壳的,发现Ngrok.cc这个看文章说有 ...
- 五、frp内网穿透客户端frpc.ini各配置参数详解
[必须]标识头[common]是不可或缺的部分 [必须]frps服务端IPserver_addr = 0.0.0.00.0.0.0为FRP服务端IP,客户端要填写为服务端已配置的对应的IP,或者是服务 ...
- [svc]frp内网穿透
什么是穿透 可以任意暴漏内网任何服务,加入你在你的办公网络有台pc,可以上网就可以了, 你可以在你电脑上安装各类服务器, 暴漏如80 22等端口, 注意 这可以暴漏到公网哦, 在出口不做任何nat情况 ...
- frp内网穿透
原理 frp(fast reverse proxy)分为Server端和Client端,Server端安装在带有公网IP的服务器上,Client安装在内网环境但能上网的普通PC中. 流程: Serve ...
- 基于frp的内网穿透实例4-为本地的web服务实现HTTPS访问
原文地址:https://wuter.cn/1932.html/ 一.想要实现的功能 目前已经实现将本地的web服务暴露到公网,现想要实现https访问.(前提:已经有相应的证书文件,如果没有就去申请 ...
随机推荐
- 用C语言的LED实验,有汇编哦!
C语言LED实验 1.汇编激活CPU 首先要明白对于没有系统开发板(也就是裸机)来说,是没办法直接对C进行识别.所以需要一段汇编语言,来配置CPU的资源,选择CPU运行模式,初始化指针位置. 代码如下 ...
- javaSE高级篇3 — 网络编程 — 更新完毕
网络编程基础知识 先来思考两个问题( 在这里先不解决 ) 如何准确的找到一台 或 多台主机? 找到之后如何进行通讯? 网络编程中的几个要素 IP 和 端口号 网络通讯协议:TCP / UDP 最后一句 ...
- day04:Python学习笔记
day04:Python学习笔记 1.算数运算符 1.算数运算符 print(10 / 3) #结果带小数 print(10 // 3) #结果取整数,不是四舍五入 print(10 % 3) #结果 ...
- 25. Linux下gdb调试
1.什么是core文件?有问题的程序运行后,产生"段错误 (核心已转储)"时生成的具有堆栈信息和调试信息的文件. 编译时需要加 -g 选项使程序生成调试信息: gcc -g cor ...
- Spark基础:(五)Spark编程进阶
共享变量 (1)累加器:是用来对信息进行聚合的,同时也是Spark中提供的一种分布式的变量机制,其原理类似于mapreduce,即分布式的改变,然后聚合这些改变.累加器的一个常见用途是在调试时对作业执 ...
- hash 模式与 history 模式小记
hash 模式 这里的 hash 就是指 url 后的 # 号以及后面的字符.比如说 "www.baidu.com/#hashhash" ,其中 "#hashhash&q ...
- 【Linux】【Services】【Docker】应用
1. Docker应用: 镜像:包含了启动Docker容器所需要的文件系统层级及其内容:基于UnionFS采用分层结构实现: bootfs,rootfs registry:保存docker镜像及镜像层 ...
- AI 2021 年度报告
建议大伙有空还是自己亲自读一下,虽然有点长,188页ppt. https://docs.google.com/presentation/d/1bwJDRC777rAf00Drthi9yT2c9b0Ma ...
- Python enumerate():使用计数器简化循环
摘要:当您需要计数和迭代中的值时,Pythonenumerate()允许您编写 Pythonicfor循环.最大的优点enumerate()是它返回一个带有计数器和值的元组,因此您不必自己增加计数器. ...
- 【阿菜做实践】利用ganache-cli本地fork以太坊主链分叉
前言 Fork主网意思是模拟具有与主网相同的状态的网络,但它将作为本地开发网络工作. 这样你就可以与部署的协议进行交互,并在本地测试复杂的交互.不用担心分叉主网作为测试链会占很多内存.这些方法都不会将 ...