搭建frp内网穿透服务器_内网穿透 无需公网ip

搭建frp内网穿透服务器_内网穿透 无需公网ipfrp实现内网穿透

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

写在前面:国内 腾讯云 和 阿里云服务器 都需要对安全组进行配置才可以访问!

一、云服务器

阿里云服务器(推荐)

初次登录需要密码,这时可通过重置 root 密码解决。

腾讯云服务器

默认会分配一个普通的用户,切换到 root 使用:

su -i
passwd  # 修改 root 账户密码

二、使用 frp 实现内网穿透

官方下载链接:Releases · fatedier/frp,配置流程如下。

1. 上传 frp

将下载好的 frp 压缩包分别传送到 云服务器 和 Linux 服务器(目标代理机器,即我们要代理的那台机器)。其中云服务器作为 frps(frp 服务端),目标代理机器 作为 frpc(frp 客户端)。该压缩包同时包含了 frps & frpc,因此不需要分别下载。

2. 安装

2.1 在 云服务器 上安装

tar -zxvf frp_0.38.0_linux_386.tar.gz -C target_dir   # 解压到指定目录

# 删除无用的文件(客户端)
rm -f frpc* systemd/frpc*

本次实验中没有对文件进行任何额外的操作,如果要自定义 内网穿透服务器 的端口,可以在 frps.ini 文件中进行修改,更多的参数参考 frps_full.ini 文件,实际使用的还是 frps.ini 没有使用 frps_full.ini 配置文件,后面的 frpc 同理。

2.2 在 目标代理机器 上安装

tar -zxvf frp_0.38.0_linux_386.tar.gz -C target_dir  # 解压到指定目录

# 删除无用的文件(服务端)
rm -f frps* systemd/frps*

修改配置文件 frpc.ini(目前只修改 云服务器的地址,其他设置作为后续的改进方案),更多详细配置参考 frpc_full.ini

server_addr = 120.79.173.220

保存退出。

3. 给 云服务器主机 配置 安全组策略

3.1 阿里云

image.png

image.png
修改完成后,重启机器!!!使得配置生效。

3.2 腾讯云

腾讯云-控制台

image.png

以上添加的安全组策略无法应用到实例上,只能使用以下方法针对实例进行设置。服务器 – 轻量应用服务器 – 控制台

在这里插入图片描述
在这里插入图片描述

修改后无需重启即可生效!

注意

  1. 默认会创建一个 lighthouse 普通用户,用于一键登录,如果不需要该用户,直接在 登录 选项栏里选择关闭一键登录功能即可。
    在这里插入图片描述

  2. 如果要修改账户密码,可以在 服务器 – 轻量应用服务器 – 控制台(更多–>重置密码) 进行修改!
    在这里插入图片描述
    如果要切换到 root 用户,只需要运行以下命令即可,

sudo -i/s  # -i 或 -s 都可以

4. 运行测试(开机自启动,后台运行等作为升级方案放在后面)

  1. 在服务端(frps)启动
./frps -c frps.ini

在这里插入图片描述

  1. 在客户端(frpc)启动
./frpc -c frpc.ini

在这里插入图片描述

此时 服务端 frps 的响应为,
在这里插入图片描述

优化升级

(1)服务端

修改 frps.service

[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
# 如果只有单个 root 用户,必须指定为 root,否则使用默认的 nobody 即可
# User=nobody 报错:code=exited, status=203/EXEC frp
User=root
Restart=on-failure
RestartSec=5s
# 路径修改
ExecStart=/root/env/frp/frps -c /root/env/frp/frps.ini
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target

参考链接:frp服务器端程序frps自启动出错-Bluesky’s blog 非常感谢这个作者!!!

将修改后的文件添加到系统文件中(注册服务?):

sudo cp systemd/frps.service /etc/systemd/system/
sudo systemctl start frps.service
systemctl status frps.service
sudo systemctl enable frps.service  # 开机自启动

ps -ef | grep frps

删除 frp 服务(比如安装文件出错,要重新安装):

systemctl stop frps.service
systemctl disable frps.service
rm -f /etc/systemd/system/frps.service
systemctl daemon-reload
systemctl reset-failed
systemctl status frps.service

参考链接:CentOS使用systemctl彻底删除服务 | 瑞瑞哥的博客


(2)客户端

frpc.service 配置文件修改,

[Unit]
Description=Frp Client Service
After=network.target

[Service]
Type=simple
# 由于有多个用户,因此不用指定唯一的用户名
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/home/guest/xxx/env/frp/frpc -c /home/guest/xxx/env/frp/frpc.ini
ExecReload=/home/guest/xxx/env/frp/frpc reload -c /home/guest/xxx/env/frp/frpc.ini
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target

安装注册 frpc 服务,随着系统启动同时启动该服务,运行其中的脚本文件,

sudo cp systemd/frpc.service /etc/systemd/system/
sudo systemctl start frpc.service
systemctl status frpc.service
sudo systemctl enable frpc.service  # 开机自启动

ps -ef | grep frpc

删除 frpc 服务,

sudo systemctl stop frpc.service
sudo systemctl disable frpc.service
sudo rm -f /etc/systemd/system/frpc.service
sudo systemctl daemon-reload
sudo systemctl reset-failed
systemctl status frpc.service

连接测试

ssh 服务器用户名@frps服务器地址 -p 6000

在这里插入图片描述

小问题:连接上之后长时间不操作导致断连的解决办法。

#.1 客户端修改

~/.ssh/config 添加,

Host *
    ServerAliveInterval 60
    ServerAliveCountMax 3

#.2 服务端修改(不推荐)

这里就不介绍了,需要的直接看第一个链接。

参考链接

优化(注册服务,开机自启动…)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194541.html原文链接:https://javaforall.net

(0)
上一篇 2025年11月3日 下午9:01
下一篇 2025年11月3日 下午9:43


相关推荐

  • gb50174-2017电子信息系统机房设计规范发布时间_机房建设标准规范

    gb50174-2017电子信息系统机房设计规范发布时间_机房建设标准规范机房分级3.1.1电子信息系统机房应划分为A、B、C三级。设计时应根据机房的使用性质、管理要求及其在经济和社会中的重要性确定所属级别。3.1.2符合下列情况之一的电子信息系统机房应为A级1电子信息系统运行中断将造成重大的经济损失;2电子信息系统运行中断将造成公共场所秩序严重混乱。3.1.3符合下列情况之一的电子信息系统机房应为B级。1电子信息系统运行中断将造成较大的经济损…

    2026年4月16日
    4
  • altas学习

    altas学习摘要本文将详细探讨 Atlas 中的声明性编程与强制性编程之间的关系 及如何用之在一个 web 客户端实现拖放功能 下图为本文相应示例程序运行结果快照 一 简介 本文旨在帮助读者理解微软的 Atlas 技术的某些方面的工作原理 Atlas 的实现宗旨是简化 AJAX 风格的 Web 程序开发 然而 就象所有其它技术一样 为了更好地使用这个工具 你需要深入理解 Atlas 抽象的内在技术 Atlas 抽象的一个关键

    2026年3月26日
    2
  • java链表listnode是线程安全的吗_两个升序链表合并为一个升序链表

    java链表listnode是线程安全的吗_两个升序链表合并为一个升序链表/***描述:删除链表中等于给定值val的所有节点。样例:给出链表1->2->3->3->4->5->3,和val=3,你需要返回删除3之后的链表:1->2->4->5。分析:1.首先判断head是不是空,为空就直接返回null2.然后从head.next开始循环遍历,删除相等于val的元素3.最后判断head是否和val相等,若相等,head=head.next

    2022年4月19日
    55
  • quota命令详细拓展使用方法,RHEL 7中quota命令搭载方法!磁盘容量配额!

    磁盘容量配额Linux系统的设计初衷就是让许多人一起使用并执行各自的任务,从而成为多用户、多任务的操作系统。但是,硬件资源是固定且有限的,如果某些用户不断地在Linux系统上创建文件或者存放电影,硬盘空间总有一天会被占满。针对这种情况,root管理员就需要使用磁盘容量配额服务来限制某位用户或某个用户组针对特定文件夹可以使用的最大硬盘空间或最大文件个数,一旦达到这个最大值就不再允许继续使用。可以使用quota命令进行磁盘容量配额管理,从而限制用户的硬盘可用容量或所能创建的最大文件个数。quota命令还有软限

    2022年4月7日
    214
  • 初识java——hello world(代码讲解很详细)[通俗易懂]

    初识java——hello world(代码讲解很详细)[通俗易懂]在每学一门语言之前我们首先要学会helloworld的的写法,下面我用java写了一个hello的输出以及每行代码的讲解;publicclasshelloworld{publicstaticvoidmain(String[]args){System.out.println(“helloworld!”);System.out.printf(“helloworld!!\n”);System.out.print(“hellow

    2022年5月28日
    206
  • vscode写前端代码要装什么插件_AE必备插件

    vscode写前端代码要装什么插件_AE必备插件本篇文章先介绍下常见的插件,如果本文对你有所帮助请三连支持博主,你的支持是我更新的动力。vscode之所以被称为宇宙第一神器(虽然我喜欢用HBuilderX),其中丰富的插件功不可没,安装起来超级简单,给我们开发带来了极大的便捷。注意,新手学习期间,不建议安装t太多的插件,用到啥就安装啥。因为有些插件会到vue学习的时候引起冲突,所以这里就介绍几个常用的插件。vscode刚下载完毕是语言英文的,要先安装这个插件,把语言改为中文版,所以是我们第一个安装的插件就是他想必各位大佬也都用。修改开始标签,结束标签

    2026年4月19日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号