廉政建设网评文章网站直播网站app下载
news/
2025/9/30 13:26:12/
文章来源:
廉政建设网评文章网站,直播网站app下载,企业管理咨询公司起名,wordpress 建站赚钱介绍
假设现有外网笔记本、云服务器、内网工作站三台设备#xff0c;希望使用外网笔记本通过云服务器转发#xff0c;访问内网工作站#xff1b;这里使用frp进行内网穿透。
云服务器端配置
登录腾讯轻量型云服务器控制台#xff0c;开放转发端口、bind_port以及deshboad…介绍
假设现有外网笔记本、云服务器、内网工作站三台设备希望使用外网笔记本通过云服务器转发访问内网工作站这里使用frp进行内网穿透。
云服务器端配置
登录腾讯轻量型云服务器控制台开放转发端口、bind_port以及deshboad端口其中deshboad端口用来测试可以不写。 测试与公网服务器ssh链接 假设公网云服务器ip地址为xx.xxx.xxx.xxx那么在外网笔记本的终端中执行 ssh ubuntuxx.xxx.xxx.xxx公网服务器端安装frp程序包 ssh进入云服务器中之后执行 wget https://github.com/fatedier/frp/releases/download/v0.22.0/frp_0.37.1_linux_amd64.tar.gz
tar -zxvf frp_0.37.1_linux_amd64.tar.gz
cp -r frp_0.37.1_linux_amd64 frp查看文件 cd frp
tree在frp文件夹中他们的文件结构是 .
├── frpc
├── frpc_full.ini
├── frpc.ini
├── frps #云服务器中使用
├── frps_full.ini
├── frps.ini #云服务器中使用
├── LICENSE
├── nohup.out
└── systemd ├── frpc.service ├── frpc.service ├── frps.service └── frps.service
1 directory, 12 files 修改frps.ini文件 vim frps.ini修改为如下内容注意其中的端口6871,6289都是提前已经在防火墙中自定义好了的 [common]
# 云服务器仪表盘端口的用户
dashboard_user xxx
# 云服务器仪表盘端口的密码
dashboard_pwd xxxxx
dashboard_port 6289
# 云服务器和内网工作站之间的连接建立端口
bind_port 6000
# 通讯口令写复杂一些
token xxxxxx移动到系统文件夹下 cd ..
sudo mv frp /usr/local/设置开机启动云服务器frps服务 sudo vim /etc/init.d/frps_start.sh写入 #!/bin/bash
### BEGIN INIT INFO
# Provides: tuzixini
# Required-Start: $local_fs $network
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: self define auto start
# Description: self define auto start
### END INIT INFO
sudo nohup /usr/local/frp/frps -c /usr/local/frp/frps.ini 赋予权限 sudo chmod 755 /etc/init.d/frps_start.sh设置自启动 cd /etc/init.d
sudo update-rc.d frps_start.sh defaults 90启动服务: 重启云服务器或者执行以下指令 **需要注意的是**如果重启之后云服务器的frp服务没有打开就会导致个人工作站的frp服务启动失败因此保证在启动内网工作站的时候云服务器的frp一定要是打开的。 cd /usr/local/frp
sudo nohup ./frps -c frps.ini 查看服务或者停止服务optional # 查看服务
systemctl status frp
# 或者以下可以查看到刚才的任务的进程id假设为32567
ps -aux | grep frps
# 杀掉进程
kill -9 32567 测试 在笔记本电脑中打开浏览器输入你的公网ip:6289 输入账户密码如果看到仪表盘就说明服务启动成功了
内网工作站配置
直接打开命令终端或者你自己ssh进去 同样下载安装frp wget https://github.com/fatedier/frp/releases/download/v0.22.0/frp_0.37.1_linux_amd64.tar.gz
tar -zxvf frp_0.37.1_linux_amd64.tar.gz
cp -r frp_0.37.1_linux_amd64 frp修改frpc.ini文件 [common]
# 你的云服务器公网ip
server_addr xx.xxx.xxx.xxx
# 云服务器端与工作站建立连接的端口与bind_port一致
server_port 6000
# 通信口令与frps.ini文件中定义的一致
token xxxxxx[ssh]
type tcp
# 内网工作站在局域网中的ip填写127.0.0.1就行不用管具体的值
local_ip 127.0.0.1
# 设置内网工作站 要监听ssh的端口
local_port 22
# 云服务器监听外部访问的端口即转发端口
remote_port 7000移动到系统文件夹下 cd ..
sudo mv frp /usr/local/设置开机启动内网工作站frpc sudo vim /etc/init.d/frpc_start.sh写入 #!/bin/bash
### BEGIN INIT INFO
# Provides: tuzixini
# Required-Start: $local_fs $network
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: self define auto start
# Description: self define auto start
### END INIT INFO
sudo nohup /usr/local/frp/frpc -c /usr/local/frp/frpc.ini 赋予权限 sudo chmod 755 /etc/init.d/frpc_start.sh设置自启动 cd /etc/init.d
sudo update-rc.d frpc_start.sh defaults 90重启内网工作站或者执行以下指令启动服务 **需要注意的是**如果重启之后云服务器的frp没有打开就会导致个人工作站的frp服务启动失败因此保证在启动内网工作站的时候云服务器的frp一定要是打开的。 cd /usr/local/frp
sudo nohup ./frpc -c frpc.ini 查看服务或者停止服务optional # 查看服务
systemctl status frp
# 或者以下可以查看到刚才的任务的进程id假设为32567
ps -aux | grep frpc
# 杀掉进程
kill -9 32567 第二个内网工作站
云服务器端
和第一个工作站配置相似只是它的frps.ini中的bind_port和第一个工作站不相同需要在云服务器上面手动开放对应的端口号 重新创建一个新的frps.ini文件假设为frps1.ini,里面写上新的口再使用frps运行它 # 随便设置一个不同的端口
bind_port 1212
# 通信口令可以跟第一个内网工作站不同但是要和自己的相同
token XXXXXXX内网工作站端
和第一个工作站配置相似只是它的frpc.ini中的server_port和remote_port都和第一个工作站不相同需要在云服务器上面手动开放对应的端口号 重新创建一个新的frpc.ini文件假设为frpc1.ini,里面写上新的口再使用frpc运行它 # 随便设置一个不同的端口需要提前在云服务器上手动开放
server_port 1212
# 通信口令可以跟第一个内网工作站不同但是要和自己的相同
token XXXXXXX[ssh]
type tcp
# 内网工作站在局域网中的ip填写127.0.0.1就行不用管具体的值
local_ip 127.0.0.1
# 设置内网工作站frp要监听的端口
local_port 22
# 不同的转发端口同样需要提前在云服务器上手动开放
remote_port 5101自动启动方式和第一个内网工作站相同。
使用 在外网笔记本的终端中输入 ssh -p [转发端口][用户名][ip]其中用户名是想要访问的内网工作站的对应账户名称ip是云服务器公网ip输入的密码也是内网工作站的密码转发端口是上面提到的remote_port
内部基本流程和解释
基本概念
外网笔记本、云服务器、内网工作站在frp穿透方法中需要在云服务器和内网工作站上进行部署在frp穿透方法中将会在云服务器上部署frpsfrp服务端内网工作站上部署frpcfrp客户端其中涉及到几个概念
bind_port定义在frps的配置文件中用于指定云服务器上的一个端口该端口用于监听内网工作站与该端口的连接请求内网工作站会通过云服务器公网ip地址向云服务器该端口发送连接请求通过该端口发送token后建立与云服务器的连接。 但是云服务端并不通过这个口向内网工作站转发外部数据server_port: 定义在frpc的配置文件中用处是告诉内网工作站“应该向云服务器的哪个端口发送建立连接请求” 本质上和bind_port相同都指的是云服务器上的一个端口只是定义位置不同。remote_port: 定义在frpc的配置文件中用于指定云服务器上的一个端口即转发端口假设remote_port7000它的作用是在内网工作站和云服务器建立和保持连接之后内网工作站根据自己配置文件中指定的remote_port7000 告诉云服务器:“我要听传输到你7000端口的数据请把你7000端口接收到的数据转发给我”为什么定义到frpc配置中local_port定义在frpc的配置文件中假设local_port22它用于告诉云服务器“你把7000端口接收的数据转发给我的22端口我在那里听着”。
基本流程
在云服务器上预先开放两个端口一个7000端口作为bind_port以及另一个6000端口作为接受外网访问的转发端口。
内网工作站通过frpc配置中的server_port和云服务器ip通过一个随机端口发送token和连接请求建立连接后内网工作站根据frpc配置中的remote_port6000指向云服务器中已经开放的6000端口告诉云服务器请求将该6000端口数据转发给自己的local_port端口云服务器随即监听请求中的6000端口接收到的数据并通过自己的随机端口将接收到的外部访问数据转发给内网工作站frpc配置中定义的local_port端口。内网工作站根据转发的数据判断是否通过ssh密码验证是否建立ssh通讯。
注意点
建立连接后云服务器一律将访问remote_port的ssh类型数据转发到内网工作站local_port端口上内网工作站local_port不管也不知道是云服务器上到底哪个port跟自己通讯的甚至不知道是从云服务器上过来的数据还是同一个内网的访问数据local_port 只是接收请求但是能不能进一步建立ssh连接还需要进行密码验证。bind_port 端口和remote_port端口的设定不用担心安全问题bind_port 端口的通讯建立需要通过frpc以及frps配置文件中的token相互匹配验证。云服务器remote_port端口本身就是要暴露在外部接收外部访问的它只是转发remote_port端口的接受数据与内网工作站的ssh建立需要通过内网工作站自身的账户密码验证。通过内网穿透的方式实现了将自己内网工作站的账户暴露在公网中此时知道公网ip、转发端口的人都可以使用常见的“用户名密码”组合尝试登录你的内网工作站因此自己内网工作站的密码需要非常复杂否则可能会被外部暴力尝试攻破。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/922875.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!