ubuntu内网穿透后在公网使用ssh登录

devtools/2024/9/24 6:46:58/

需求:

  • 我有一台内网可以通过ssh 22端口访问的设备
  • 操作系统是ubuntu server
  • 我还有1台拥有公网IP的服务器,IP地址是 6.66.666.6666
  • 我想随时从其他网段通过ssh访问我的ubuntu server设备

实现:

  1. 工具准备:frp
    网址:https://github.com/fatedier/frp?tab=readme-ov-file
    下载releases:https://github.com/fatedier/frp/releases
    在这里插入图片描述

  2. 看一下我的设备要安装哪个发布版
    内网设备:

~ λ uname -a
Linux raspberrypi 5.15.0-1015-raspi #17-Ubuntu SMP PREEMPT Mon Sep 12 13:14:51 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux

好,安装frp_0.60.0_linux_arm64.tar.gz

tar -zxvf frp_0.60.0_linux_arm64.tar.gz

再看我的公网服务器:

ubuntu:~$ uname -a
Linux VM-20-9-ubuntu 5.15.0-86-generic #96-Ubuntu SMP Wed Sep 20 08:23:49 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

好,安装frp_0.60.0_linux_amd64.tar.gz

tar -zxvf frp_0.60.0_linux_amd64.tar.gz
  1. 配置服务器
    官网已经给了教程,修改frps.toml文件,我就用官方给的默认的7000端口,注意7000是服务器转发端口;
    在这里插入图片描述
    这里就可以在服务器上运行./frps -c ./frps.toml启动frp工具的server了,注意,当前的配置系统重启就失效了;
  2. 配置客户端
    官网已经给了教程,修改frpc.toml文件,我就用官方给的默认的6000端口,注意6000是客户端访问端口,也就是访问内网设备ssh服务时,要把默认22端口改为6000
    在这里插入图片描述
# frpc.toml
serverAddr = "6.66.666.6666" # 就改了这个服务器地址,其他不变
serverPort = 7000[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000

这里就可以在内网ubuntu设备上运行./frpc -c ./frpc.toml启动frp工具的client了,注意,当前的配置系统重启就失效了;

  1. 这时候,就可以通过6.66.666.6666:6000尝试登录内网设备了,好,我已经理论上成功登录了——实际上没有
  2. 看了一下,我的买的腾讯云服务器默认是有防火墙的,要给这两端口搞个白名单
    在这里插入图片描述
  3. 通过6.66.666.6666:6000尝试登录内网设备,好,确实可以,如下图,这里安利一下谷歌商店下的APP:ConnectBot
    在这里插入图片描述
  4. 但是这时候发现,我重启公网服务器或者内网ubuntu设备,都会导致内网穿透失效,原因其实就是该服务没设置开机重启罢了
  5. 官方真贴心,又提供了工具:systemd
    网址:https://gofrp.org/zh-cn/docs/setup/systemd/
    但是呢,贴心的官方也是有那么一点点高看我们的,官方给的例子都是对服务器的配置,不够细心的话就会把客户端当成服务端配;
    好,
    这里我是这么干的:
  • 公网服务器和内网ubuntu设备都安装 systemd,apt install systemd
  • 公网服务器创建 frps.service 文件sudo vim /etc/systemd/system/frps.service
    写入内容:
    由于我已经把frp_0.60.0_linux_amd64移动到/opt目录,并重命名为frp
    所以我就相对官方改了这一句
# 启动frps的命令,需修改为您的frps的安装路径,这里注意是frps
ExecStart = /opt/frp/frps -c /opt/frp/frps.toml
  • ubuntu设备创建 frpc.service 文件sudo vim /etc/systemd/system/frpc.service
    写入内容:
    由于我已经把frp_0.60.0_linux_arm64移动到/opt目录,并重命名为frp
    所以我就相对官方改了这一句
# 启动frps的命令,需修改为您的frps的安装路径,这里注意是frpc
ExecStart = /opt/frp/frpc -c /opt/frp/frpc.toml

好,上面的操作意思就是,配置使用工具systemctl 运行 /opt/frp/frps -c /opt/frp/frps.toml/opt/frp/frpc -c /opt/frp/frpc.toml

  • 最后,在公网服务器和内网ubuntu设备均设置 frps 开机自启动
    公网服务器:sudo systemctl enable frps
    内网ubuntu设备:sudo systemctl enable frpc

  • 后面,我分别尝试了重启公网服务器和内网ubuntu设备,结果当然都是ok的;

好,圆满了


http://www.ppmy.cn/devtools/116377.html

相关文章

Python 复制Excel 中的行、列、单元格

在Excel中,复制行、列和单元格是日常工作中经常需要进行的操作,它可以帮助你快速调整数据布局、复制数据模板或进行数据的批量处理。 本文将详细介绍如何使用Python将Excel中的行、列、或单元格范围复制到指定位置。 所需Python库 要使用Python操作Exc…

得物App荣获新奖项,科技创新助力高质量发展

近日,备受瞩目的2024中国国际服务贸易交易会(简称“服贸会”)在北京盛大开幕,这一全球唯一的国家级、国际性、综合型服务贸易盛会再次汇聚了全球服务贸易领域的精英与前沿成果。服贸会由商务部和北京市政府携手打造,并…

flink 批量压缩redis集群 sink

idea maven依赖 <dependency> <groupId>org.apache.bahir</groupId> <artifactId>flink-connector-redis_2.11</artifactId> <version>1.0</version> </dependency> <dependency> <groupId>redis.clients</gr…

JDK7u21 HashMap版

今天在搞ROME HotSwappableTargetSource链的时候突然发现&#xff0c;JDK7U21反序列化链不仅HashMap.put触发了key.equals putForCreate也调用了 而且HashMap.readObject直接调用了putForCreate来还原 what?直接向HashMap两个put不就完了&#xff0c;还搞什么HashSet 开弄&am…

鸿蒙​​​​​​保障应用开发安全的技术措施

应用开发安全是指在开发过程中嵌入安全能力&#xff0c;使应用程序从源头上安全可靠。 开发者是应用程序的创作者&#xff0c;合法的开发者是创作出安全、可靠应用的前提条件;为了保证应用开发者身份真实可信&#xff0c;鸿蒙通过开发者证书对应用进行签名&#xff0c;保证应用…

MySQL增删面试题

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。运营社区&#xff1a;C站/掘金/腾讯云/阿里云/华为云/51CTO&#xff1b;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互…

深度学习:(七)梯度下降法在神经网络中的应用

梯度下降法在神经网络中的应用 事先规定&#xff1a; 用 n n n 表示个数&#xff08;维度&#xff09;: n [ 0 ] n x n^{[0]}n_x n[0]nx​ &#xff0c;表示单个训练样本 x x x 的元素个数&#xff1b; n [ 1 ] n^{[1]} n[1] 表示隐藏层 1 1 1 的单元&#xff08;节点&am…

甩锅笔记:好好的服务端应用突然起不来,经定位是无法访问外网了?测试又说没改网络配置,该如何定位?

在工作中、团队协作时&#xff0c;可能遇到的问题&#xff0c;如集成测试等场景。但是作为偏前端的全栈&#xff0c;锅从天上来&#xff0c;不是你想甩就能甩&#xff0c;尤其面对测试等比较强势的团体&#xff08;bug创造者&#xff09;&#xff0c;你必须有强大的心理承受能力…