# 云服务器frp内网穿透教程

软件源码在https://github.com/fatedier/frp/releases上,根据系统类型,按需下载

教程术语描述

> A 是有固定IP的云服务器(这里以阿里云服务器为例)
>
> B 是公司内网服务器
>
> C 是家里windowns系统

## 配置`服务器A`

### 步骤1:源码准备

```
wget https://github.com/fatedier/frp/releases/download/v0.45.0/frp_0.45.0_linux_amd64.tar.gz
tar -zxvf frp_0.45.0_linux_amd64.tar.gz
cd frp_0.45.0_linux_amd64/
```

### 步骤2:修改frps.ini

```
[common]
bind_port = 7000
```

### 步骤3:开放端口

1. 开放服务器防火墙

> 7000端口是供`内网服务器B`来监听
>
> 10000端口是供`云服务器A`转发到`内网服务器B`用的

```
apt install firewalld # 安装防火墙
firewall-cmd --permanent --zone=public --add-port=7000/tcp
firewall-cmd --permanent --zone=public --add-port=10000/tcp
systemctl reload firewalld
```

2. 阿里云控制台开放7000、10000端口

实例详情》配置安全组规则》配置规则 (协议TCP)

### 步骤4:部署frp

```
./frps -c frps.ini

# 成功运行如下
2022/12/10 11:59:30 [I] [root.go:206] frps uses config file: frps.ini
2022/12/10 11:59:31 [I] [service.go:196] frps tcp listen on 0.0.0.0:7000
2022/12/10 11:59:31 [I] [root.go:215] frps started successfully
```

## 配置`内网服务器B`

### 步骤1:源码准备

```
wget https://github.com/fatedier/frp/releases/download/v0.45.0/frp_0.45.0_linux_amd64.tar.gz
tar -zxvf frp_0.45.0_linux_amd64.tar.gz
cd frp_0.45.0_linux_amd64/
```

### 步骤2:修改frpc.ini

```
[common]
server_addr = 8.134.210.33 # 服务器的公网IP
server_port = 7000

[ssh] #这个名字可以随便改
type = tcp
local_ip = 127.0.0.1 #一般不修改
local_port = 22 #外界连接本机的哪个端口
remote_port = 10000 #外界可以通过哪个端口访问进来

#外界通过 公网IP + remote_port ---访问---> local_ip + local_port
#如:访问8.134.210.33:10000 实质访问 127.0.0.1:22
```

### 步骤3:户端部署frp

```
./frpc -c frpc.ini

# 成功运行如下
2022/12/10 12:09:51 [I] [service.go:357] [bdd6a6b31aa4727a] login to server success, get run id [bdd6a6b31aa4727a], server udp port [0]
2022/12/10 12:09:51 [I] [proxy_manager.go:142] [bdd6a6b31aa4727a] proxy added: [ssh]
2022/12/10 12:09:51 [I] [control.go:177] [bdd6a6b31aa4727a] [ssh] start proxy success
```

## 在家里登录公司内网服务器

通过公网IP+端口访问公司内网的服务器

> ssh的IP是云服务器的公网IP
>
> 端口号是`内网服务器B`的对外开放端口(云服务器也需要开放这个端口)

```
ssh xj@8.134.210.33:10000
```

## 附加操作

### 1、将服务器端、客户端程序放到后台运行

```
服务器端
nohup ./frps -c frps.ini >/dev/null 2>/dev/null &

客户端
nohup ./frpc -c frpc.ini >/dev/null 2>/dev/null &
```

### 2、将frp放至开机自启动(Ubuntu20.04方案)

#### step1.创建rc-local.service文件

```
sudo cp /lib/systemd/system/rc-local.service /etc/systemd/system
```

然后修改/etc/systemd/system/rc-local.service,在文件最下方添加如下两行

```
[Install]
WantedBy=multi-user.target
Alias=rc-local.service
```

#### step2:创建rc.local文件

创建**sudo vi /etc/rc.local **,里边写自己想要运行的命令。例:

```
#!/bin/sh
echo "This is test(xj)" > /tmp/my.log

#自行修改为绝对路径
nohup /root/frp/frpc -c /root/frp/frpc.ini &
```

给**/etc/rc.local**加上可执行权限

```
sudo chmod +x /etc/rc.local
```

#### step3.测试

启动后可以发现:/tmp下已经有了my.log文件,里边内容为:"This is test"。

**systemctl命令**

**启动服务**

```bash
sudo systemctl start rc-local.service
```

**查看服务状态**

```lua
sudo systemctl status rc-local.service
```

好了,教程就到这里了

> 您的关注,是我的无限动力!
>
> 公众号 @生活处处有BUG

frp内网穿透(已验证)的更多相关文章

  1. Frp内网穿透搭建,家庭主机对外提供接口,支持ssh访问

    Frp内网穿透搭建,家庭主机对外提供接口,支持ssh访问 1.使用场景: 需求1.家中服务器 ubuntu 主机,跑接口服务,需要对外暴漏, 需求2.同时需要在外网ssh远程 ​ 关键词: frp内网 ...

  2. frp内网 穿透映射使内网svn可外网访问

    起因 公司svn目前部署在内网服务器上,现在想在家中也可以使用,因此需要外网访问内网的工具 经过 使用过几个产品: utools,一个小巧的windows下的工具,内网映射只是它的一个小功能,支持tc ...

  3. 树莓派FRP内网穿透及自启动

    内网穿透的步骤和文件存档 实验室在远方部署了电脑主机来采集数据和图片,每次去调试会很麻烦,因而使用FRP内网穿透使得我们可以在实验室访问主机. 主要功能 实现远程可访问和开机自启FRP程序服务 安装和 ...

  4. 五、frp内网穿透客户端frpc.ini各配置参数详解

    [必须]标识头[common]是不可或缺的部分 [必须]frps服务端IPserver_addr = 0.0.0.00.0.0.0为FRP服务端IP,客户端要填写为服务端已配置的对应的IP,或者是服务 ...

  5. 四、frp内网穿透服务端frps.ini各配置参数详解

    [必须]标识头[common]是不可或缺的部分 [必须]服务器IPbind_addr = 0.0.0.00.0.0.0为服务器全局所有IP可用,假如你的服务器有多个IP则可以这样做,或者填写为指定其中 ...

  6. 【网络】内网穿透方案&FRP内网穿透实战(基础版)

    目录 前言 方案 方案1:公网 方案2:第三方内网穿透软件 花生壳 cpolar 方案3:云服务器做反向代理 FRP简介 FRP资源 FRP原理 FRP配置教程之SSH 前期准备 服务器配置 下载FR ...

  7. frp 内网穿透访问内网Web服务

    ps:最近想要通过域名(公网)访问或者测试在本地搭建的 web 服务(不想在公网IP服务器上再部署个服务,也不想通过teamview等工具远程卡到爆!), 由于本地机器没有公网 IP,无法将域名解析到 ...

  8. frp内网穿透学习

    前言 因为自己在内网,但是目标站在外网,这时候可以通过内网穿透工具,将接收到的请求转发到内网,实现在内网的msf可以控制外网的靶机. 也看了一些Ngrok,花生壳的,发现Ngrok.cc这个看文章说有 ...

  9. [svc]frp内网穿透

    什么是穿透 可以任意暴漏内网任何服务,加入你在你的办公网络有台pc,可以上网就可以了, 你可以在你电脑上安装各类服务器, 暴漏如80 22等端口, 注意 这可以暴漏到公网哦, 在出口不做任何nat情况 ...

  10. frp内网穿透

    原理 frp(fast reverse proxy)分为Server端和Client端,Server端安装在带有公网IP的服务器上,Client安装在内网环境但能上网的普通PC中. 流程: Serve ...

随机推荐

  1. git commit、git push、git pull、 git fetch、git merge 的含义与区别

    git commit:是将本地修改过的文件提交到本地库中: git push:是将本地库中的最新信息发送给远程库: git pull:是从远程获取最新版本到本地,并自动merge: git fetch ...

  2. nsis使用URLDownloadToFile下载文件

    在Urlmon.dll中有个函数叫URLDownloadToFile,顾名思义,是一个用来下载文件的东西,我们做在线安装或者其他很多时候,往往需要提前下载一些小的文件来配置当前将要安装的程序,遇到这种 ...

  3. 【算法训练营day8】LeetCode344. 反转字符串 LeetCode541. 反转字符串II 剑指Offer05. 替换空格 LeetCode151. 翻转字符串里的单词 剑指Offer58-II. 左旋转字符串

    [算法训练营day8]LeetCode344. 反转字符串 LeetCode541. 反转字符串II 剑指Offer05. 替换空格 LeetCode151. 翻转字符串里的单词 剑指Offer58- ...

  4. logback在springBoot项目中的使用 springboot中使用日志进行持久化保存日志信息

    文章目录 1.xml文件的编写 2.实现的效果 2.1 日志保存到磁盘 2.2 控制台输出的效果 放置的位置 1.xml文件的编写 logback-spring.xml <?xml versio ...

  5. 频道插件如何对接圈子 齐博x1齐博x2齐博x3齐博x4齐博x5齐博x6齐博x7齐博x8齐博x9齐博x10

    圈子黄页里要显示对应频道的数据列表,一般没有特殊要求的话,不需要建立PHP文件, 只须要做好模板即可,比如 \template\index_style\default\qun\shop\index.h ...

  6. .NET性能系列文章一:.NET7的性能改进

    这些方法在.NET7中变得更快 照片来自 CHUTTERSNAP 的 Unsplash 欢迎阅读.NET性能系列的第一章.这一系列的特点是对.NET世界中许多不同的主题进行研究.比较性能.正如标题所说 ...

  7. 知识图谱顶会论文(IJCAI-2022) TEMP:多跳推理的类型感知嵌入

    IJCAI-TEMP:知识图谱上多跳推理的类型感知嵌入 论文地址: Type-aware Embeddings for Multi-Hop Reasoning over Knowledge Graph ...

  8. 归纳学习(Inductive Learning),直推学习(Transductive Learning),困难负样本(Hard Negative)

    归纳学习(Inductive Learning): 顾名思义,就是从已有训练数据中归纳出模式来,应用于新的测试数据和任务.我们常用的机器学习模式就是归纳学习. 直推学习(Transductive Le ...

  9. .Net Core - 使用事务IDbtransaction操作DBData

    New一个流程 获取数据库连接字符串,实例化SqlConnection 打来数据库连接 Begin当前连接的事务(IDbTransaction) 操作数据库(操作数据库的时候一定要使用当前连接和事务修 ...

  10. 笔记:Debian下为sublime text建立软链接[像vi一样到处使用]

    先查询sublime-text安装路径 :~$ dpkg -L sublime-text /. /opt /opt/sublime_text ... /opt/sublime_text/sublime ...