利用frp进行内网穿透
内网穿透是打破没有公网ip的桎梏,让处于内网的机器也能在远程使用ssh链接,让我这个机器学习算法工程师也能处在世界任何一个地方操纵自己的电脑。话不多说,开始教程。
需要的条件是,有一台有公网ip的服务器当代理机器,使用端口映射,将内网内的主机localhost:22y映射到公网ip的主机上任意一个没有占用的端口,比如6000.
复习计算机网络
假设我们的主机IP是192.168.0.0,路由器LAN IP为192.168.0.1,WAN IP为211.22.145.234(这是一个公网IP),google 服务器 IP 为74.125.204.101。
主机构建HTTP请求数据包,目标IP为74.125.204.101,目标端口是80/443,源IP为192.168.0.0,源端口随机生成,假定为5000
主机检查目标IP地址,发现不在一个网段,数据包丢给默认网关192.168.0.1
路由器LAN口收到数据包,构建NAT映射,随机生成端口,假定为5500,这样映射就是:5500->192.168.0.0:5000.WAN口收到的数据包,如果目标端口是5500,则会转发给192.168.0.0的5000端口。
路由器修改数据包的源端口为5500,源IP地址为211.22.145.234,使用WAN口将数据包发出去
google服务器收到请求,构建响应HTTP数据包,目标IP地址为211.22.145.234,目标端口是5500
路由器WAN口收到数据包,目标端口是5500,查询NAT表,发现对应的机器是192.168.0.0:5000,所以修改目标IP为192.168.0.0,目标端口为5000,并通过LAN口发送给主机
主机收到数据包,完成一次通信。
参考
frp穿透原理
使用frp穿透内网
点击链接下载https://github.com/fatedier/frp/releases/download/v0.30.0/frp_0.30.0_linux_amd64.tar.gz
frp_0.30_amd64_linux
目前版本为0.30,请到官网下载最新的frp内网穿透软件,我买的腾讯云的服务器,架构一般的X86_64.,上传服务器,解压。
或者直接使用wget或aria2下载
##使用wget 下载
wget https://github.com/fatedier/frp/releases/download/v0.30.0/frp_0.30.0_linux_amd64.tar.gz
##使用aria2下载
aria2 https://github.com/fatedier/frp/releases/download/v0.30.0/frp_0.30.0_linux_amd64.tar.gz
下载完毕后解压,进入路径
##解压
tar -xvzf frp_0.30.0_linux_amd64.tar.gz
##进入软件包
cd frp_0.30.0_linux_amd64
设置服务端server
vim frps.ini
查看监听的端口号
[common]
bind_port = 7000 # frp服务的端口
在服务端开启frp代理服务
./frps -c frps.ini # 前台直接启动,测试看日志方便
nohup ./frps -c ./frps.ini > /dev/null 2>&1 & # 后台运行
设置客户端client
同上下载对应版本的frp软件,解压到适当的路径。
##使用wget 下载
wget https://github.com/fatedier/frp/releases/download/v0.30.0/frp_0.30.0_linux_amd64.tar.gz
##使用aria2下载
aria2 https://github.com/fatedier/frp/releases/download/v0.30.0/frp_0.30.0_linux_amd64.tar.gz
下载完毕后解压,进入路径
##解压
tar -xvzf frp_0.30.0_linux_amd64.tar.gz
##进入软件包
cd frp_0.30.0_linux_amd64
编辑客户端的配置,将server的公网ip写入server_addr,这里是23。12.12.12,监听端口写入server_port,这里是7000,远程连接时使用的端口remote_port改为6000。
`
vim frpc.ini
修改的端口号
[common]
server_addr = 23.12.12.12 # 公网服务器IP
server_port = 7000 # 公网服务器的bind_port[ssh]
type = tcp # 协议格式
local_ip = 127.0.0.1
local_port = 22 # 本地ssh服务端口
remote_port = 6000 # 远程连接时使用的端口
开启客户端的frp服务。
./frpc -c ./frpc.ini # 前台直接启动,测试看日志方便
nohup ./frpc -c ./frpc.ini > /dev/null 2>&1 & # 后台运行
如果有多台机器需要配置,只需要将每台客户端的的
[ssh]
type = tcp # 协议格式
local_ip = 127.0.0.1
local_port = 22 # 本地ssh服务端口
remote_port = 6000 # 远程连接时使用的端口
中ssh改一个其他名字,remote_port改为其他的端口比如6001.像这样。
[ssh_6001]
type = tcp # 协议格式
local_ip = 127.0.0.1
local_port = 22 # 本地ssh服务端口
remote_port = 6001 # 远程连接时使用的端口
之后开启服务。
测试远程登陆计算机。
ssh innet_username@server_ip_address -p 6000
ssh innet_username@server_ip_address -p 6001
输入密码就可以登录在内网内的主机了,是不是很方便?
使用scp在刚刚内网穿透的机器上进行文件传输
scp是一个很好的文件传输工具,在局域网内可以很方便传输,或者在有公网ip的机器上也可以,那么在内网穿透后可以传输吗?答案是肯定的。
scp -P 6000 -r ./local_file inner_net_username@server_ip_address:/your/inner/net/machine/path
-P 添加刚刚的port
-r 代表递归,传输文件夹
关掉frp
ps -aux|grep frp| grep -v grep
kill process_id
利用frp进行内网穿透相关推荐
- FRP|利用FRP完成内网穿透进行windows远程连接的步骤汇总
文章目录 FRP|利用FRP完成内网穿透进行windows远程连接的步骤汇总 本次配置过程的前提: 服务端配置详情 客户端(windows电脑配置) FRP|利用FRP完成内网穿透进行windows远 ...
- 利用frp进行内网穿透将iPad变成“iPad Book”
利用frp进行内网穿透将iPad变成"iPad Book" 其实通过team viewer或者向日葵这类远程连接软件更方便,但是速度慢,画面卡(并且会有额外收费的功能)等缺点无法给 ...
- 【内网穿透服务器】利用云服务器+FRP实现内网穿透并远程连接服务器
应用目的:远程管理或在外网访问内网机器上的服务 这里我们是使用云服务器+FRP实现内网穿透,达到远程连接服务器的目的 准备工作 云服务器 这里我们租用的是腾讯云的服务器,类似于下图的这种,配置选择可以 ...
- 群晖安装frp实现内网穿透(2022最新版frp)
一.环境 云服务器CentOS 8(轻量应用服务器) 黑群晖DSM 6.2-23739 frp版本0.38.0 二.云服务器frps配置 云服务器用的是腾讯云的,直接用wget去GitHub下载比较慢 ...
- 使用FRP进行内网穿透的最佳实践
转自我的个人博客https://blognas.hwb0307.com.欢迎关注! 前言 前不久我出过一期<Docker系列 通过FRP实现内网穿透>讲述怎么利用FRP进行内网穿透.不过, ...
- 使用frp进行内网穿透的实例
目录 为什么需要内网穿透功能 frp是什么 工具下载地址 下载的软件可参考 准备工作 VPS相关 VPS上添加入站规则 服务端设置 服务端后台运行 客户端设置 自定义规则 客户端后台运行及开机自启 为 ...
- 利用frps进行内网穿透
这里使用的是传统穿透方法,需要一个有公网ip的中转节点去告知 看最下面,用最新版的frps 1.注意 服务器和客户机之间的数据传输全部经过中转服务器,传输速度将受制于中转服务器的上下行带宽. 2.穿透 ...
- 远程访问内网服务器使用FRP实现内网穿透
使用FRP实现内网穿透,远程访问内网服务器 frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持 ...
- 【内网穿透服务器】使用FRP实现内网穿透,远程访问内网服务器
使用FRP实现内网穿透,远程访问内网服务器 frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持 ...
最新文章
- win7下解决Android SDK Manger慢
- 零基础能学好UI设计吗
- bcc校验码计算_CRC校验你会吗?计算、校验、C语言实现,三步教你轻松搞定
- cron表达式 每天0点10分和30分_“提前2小时下班”:学会这10个函数,办公效率提升了10倍!...
- Spring MVC控制器的单元测试:REST API
- web通讯录之登录注册界面
- 别说“我已经很努力了”
- oracle的cols,Oraclecols_as_rows比对数据
- 1910140852linux安装g
- 项目分布式部署那些事(1):ONS消息队列、基于Redis的Session共享,开源共享
- Java EE开发四大常用框架
- ppt怎么一次性改全部字体_PPT的字体怎么选择?
- Android常用抓包工具—Charls(青花瓷)
- 你知道硬齿面减速机价格为什么比齿轮减速机,蜗轮蜗杆减速机高?
- 【BZOJ3162】独钓寒江雪 树同构+DP
- Android设备的电池续航时间优化(Optimizing Battery Life)——(一)监听电池电量和电池的充电状态
- mac下展示隐藏文件
- 微信小程序怎么发布?
- java1000字节是多少汉字_面试官:Java 中有几种基本数据类型是什么?各自占用多少字节?...
- php发邮件 环境,PHP使用Pear发送邮件(Windows环境)