centos 内网映射(centos远程桌面连接)
本篇文章给大家谈谈centos 内网映射,以及centos远程桌面连接对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
别人怎样访问自己的localhost:8080前端项目内网穿透
一、了解内网穿透
内网穿透又叫内网映射,功能是把内网IP映射到公网,使公网也能轻松访问所搭建的服务。
我在公司电脑上运行了一个web项目,现在希望所有人都能访问它。
很显然,只有公司的同事能通过]ip地址访问到页面,公司外的人访问不到。
这时候你有两种方案:一是把网站部署到服务器上,二就是用内网穿透了。
部署到服务器费不能实时刷新,改动一行代码都要打包上传,费时费力。
ps:?内网映射方便的同时也会带来安全风险
内网穿透能干什么?
在外网演示你本地的web项目
手机测试移动端的网页
远程控制自己电脑
和朋友联机打游戏
...
穿透的过程
?以vue项目为例,你已经运行了项目,地址是
这时“人在公司坐,活从天上来”,在客户那边的同事要给客户展示下开发进度。
你只要运行一下穿透的服务,然后把公网访问的地址发给同事,就能访问本地的
DDNS和内网穿透
?
二、实现穿透
实现穿透就需要提供映射的服务端,这个服务端可以是网上免费的,也可以是自建的。
自建服务推荐两个开源项目frp和ngrok
免费自建●?小米球●?花生壳●NATAPP●cpolar??......●frp●ngrok三、免费服务
小米球
花生壳
NATAPP
cpolar
免费服务通常有几个限制,也提供收费服务
需要注册账号
访问地址不固定
有访问时间限制
优势也非常明显,不需要服务器,使用方便等
网上还有很多内网映射服务商,自行搜索
免费服务的流程大同小异,都需要注册一个账号,下载客户端使用
?以小米球()为例
?注意:小米球需要实名认证
官网上的演示视频
注册账号?
登录?
通过菜单【系统管理】->【账户管理】->【我的账户】获取token
下载客户端(注意选择合适的版本)?官网下载链接
修改配置配置xiaomiqiu.conf
server_addr:?ngrok2.xiaomiqiu.cn:5432trust_host_root_certs:?trueauth_token:
把auth_token改成自己的token,?不要改动其他内容
运行小米球一键启动工具.bat即可
四、用frp自建服务
重点说一下如何自建内网穿透。
偶尔用一次,我建议注册免费的服务即可
4.1frp是什么?
frp是一个专注于内网穿透的高性能的反向代理应用,支持TCP、UDP、HTTP、HTTPS等多种协议。可以将内网服务以安全、便捷的方式通过具有公网IP节点的中转暴露到公网。
frp官网下载地址开源协议Apache-2.0
首先需要一台公网服务器
?“我有个朋友,他恰好有一台”
4.2下载安装包
frp的每个压缩包中都包含客户端和服务端两套文件,以文件名区分
frpc开头的文件是客户端(运行在需要穿透的机器)
frps开头的文件是服务端(运行在公网服务器)
我的环境如下,所以需要下载两个安装包
系统安装包名需要穿透的机器Windows10?64位frp_0.42.0_windows_amd64.zip公网服务器LinuxCentOS764位frp_0.42.0_linux_amd64.tar.gz4.3配置服务端
在本地解压frp_0.42.0_linux_amd64.tar.gz,修改好配置再传到服务器
修改frps.ini
[common]bind_port?=?7000#?客户端和服务端必须使用相同的token才能建立连接#?相当于连接密码,自由设置token?=?0jiklwLgXq#?http代理访问端口vhost_http_port?=?9999#?以下参数可选#?-----------#?开启数据仪表盘,端口7500dashboard_port?=?7500#?数据仪表盘的用户名密码,默认为?admindashboard_user?=?admindashboard_pwd?=?admin
上传以下文件到服务器
│??frps│??frps.ini│??frps_full.ini│??LICENSE│└─systemd
frpc开头的文件是客户端文件,服务器上用不到
增加执行权限
?chmod?+x?frps
开放防火墙和安全组配置文件中的端口
7000:连接端口
7500:仪表盘端口
9999:web服务访问端口
我用的华为云,安全组策略如下。
4.4配置客户端
解压frp_0.42.0_windows_amd64.zip
修改frpc.ini
[common]server_addr?=?你的服务端IPserver_port?=?7000token?=?0jiklwLgXq[web]type?=?http#?需要穿透的本地端口local_port?=?8080custom_domains?=?你的服务端IP4.5运行
运行服务端
进入frp所在目录执行
./frps?-c?./frps.ini
?如图表示运行成功
运行客户端
进入frp所在目录执行
./frpc?-c?./frpc.ini
?如图表示运行成功
4.6效果
web服务穿透
本地localhoust:8080
穿透后*.*.*.*:9999
仪表盘服务
五、扩展5.1frp还能做什么?
frpc_full.ini是客户端全部配置示例
frps_full.ini是服务端全部配置示例
frp根据不同配置提供不同服务,以下是官网提供的配置示例
通过ssh访问内网机器
访问内网web服务(本文内容)
转发DNS查询请求
转发Unix域套接字
提供简单文件访问服务
为本地HTTP提供HTTPS服务
安全地暴露内网服务
点对点内网穿透
5.2动态端口脚本
问题:怎样快速切换代理的本地端口号?
frp运行时依赖配置文件
./frpc-c./frpc.ini调用的frpc.ini
用node.js写一个修改端口的脚本,保存为D:\frp\frpPort.js
const?fs?=?require('fs')const?readline?=?require('readline')var?exec?=?require('child_process').exec//?修改成自己的路径const?path?=?'D:\\frp\\frpc.ini'const?runFrp?=?'D:\\frp\\frpc?-c?'const?rl?=?readline.createInterface({??input:?process.stdin,??output:?process.stdout});rl.question('输入要穿透的端口号:?',?port?=>?{??let?config?=?fs.readFileSync(path,?'utf-8').toString()??const?key?=?"local_port?=?"??const?newConfig?=?config.replace(new?RegExp(`(?<=(${key}))\\d+`,?'g'),?port?||?'8080')??fs.writeFileSync(path,?newConfig)??exec(runFrp?+?path,?(error,?stdout,?stderr)?=>?{????console.log(stdout)??});??rl.close();});
用正则替换端口,更好的方式是ini模块constini=require('ini')
原文;??但是需要npm安装,“可以但是没必要?”
cmd运行脚本命令
node?D:\frp\frpPort.js
没有报错信息表示穿透成功
截图时服务端已经运行
5.3快速运行脚本
问题:frp提供这么多服务,怎样快速切换?
从配置文件下手,可以新建多个配置文件
?举个栗子
frpc_web.ini:提供web穿透
frpc_file.ini:提供简单文件访问
然后写一个bat脚本来运行,保存为frpRun.bat
?注意保存时的编码选GB2312,否则乱码
?配合动态端口脚本
@echo?offecho?输入序号运行不同服务echo?1??运行web穿透echo?2??运行动态修改端口穿透set?/p?var=请输入序号:?if?"%var%"=="1"?(????echo?运行web穿透...????@REM?下面改成你的路径????D:\frp\frpc?-c?D:\frp\frpc_web.ini)?else?if?"%var%"=="2"?(????echo?运行动态修改端口穿透...????@REM?下面改成你的路径????node?D:\frp\frpPort.js)?else?(????echo?序号错误)pause
截图时服务端已经运行
5.4Linux下的脚本
参考我的另一篇
通过封装Nginx4个命令,学习编写Shell脚本
六、报错处理
tokeninlogindoesn'tmatchtokenfromconfiguration
[common]bind_port?=?7000#?客户端和服务端必须使用相同的token才能建立连接#?相当于连接密码,自由设置token?=?0jiklwLgXq#?http代理访问端口vhost_http_port?=?9999#?以下参数可选#?-----------#?开启数据仪表盘,端口7500dashboard_port?=?7500#?数据仪表盘的用户名密码,默认为?admindashboard_user?=?admindashboard_pwd?=?admin0
解决:检查token是否正确(尝试重新填写两边token)
logintoserverfailed:dialtcp*.*.*.*:7000:connectex:Noconnectioncouldbemadebecausethetargetmachineactivelyrefusedit.
[common]bind_port?=?7000#?客户端和服务端必须使用相同的token才能建立连接#?相当于连接密码,自由设置token?=?0jiklwLgXq#?http代理访问端口vhost_http_port?=?9999#?以下参数可选#?-----------#?开启数据仪表盘,端口7500dashboard_port?=?7500#?数据仪表盘的用户名密码,默认为?admindashboard_user?=?admindashboard_pwd?=?admin1
解决:服务端没有运行
type[http]notsupportwhenvhost_http_portisnotset
[common]bind_port?=?7000#?客户端和服务端必须使用相同的token才能建立连接#?相当于连接密码,自由设置token?=?0jiklwLgXq#?http代理访问端口vhost_http_port?=?9999#?以下参数可选#?-----------#?开启数据仪表盘,端口7500dashboard_port?=?7500#?数据仪表盘的用户名密码,默认为?admindashboard_user?=?admindashboard_pwd?=?admin2
解决:配置服务端的http端口
配置正确,连接不上?
尝试使用kcp配置
服务端
[common]bind_port?=?7000#?客户端和服务端必须使用相同的token才能建立连接#?相当于连接密码,自由设置token?=?0jiklwLgXq#?http代理访问端口vhost_http_port?=?9999#?以下参数可选#?-----------#?开启数据仪表盘,端口7500dashboard_port?=?7500#?数据仪表盘的用户名密码,默认为?admindashboard_user?=?admindashboard_pwd?=?admin3
客户端
[common]bind_port?=?7000#?客户端和服务端必须使用相同的token才能建立连接#?相当于连接密码,自由设置token?=?0jiklwLgXq#?http代理访问端口vhost_http_port?=?9999#?以下参数可选#?-----------#?开启数据仪表盘,端口7500dashboard_port?=?7500#?数据仪表盘的用户名密码,默认为?admindashboard_user?=?admindashboard_pwd?=?admin4最后
?注意安全!
?安全!
?全!
原文:
用CentOS云服务器搭建frp内网穿透服务
frp是Github上的一个项目,它是一种可以将内网IP映射到公网IP的内网穿透工具。一旦启用frp服务,原本没有公网IP的设备将因为frp的映射功能而获得一个公网IP。这样一来,互联网上的设备就可以通过访问这个公网IP的特定端口来访问该设备,从而解决了仅拥有内网IP的设备在互联网通信中遇到的难题。
实验环境
首先在腾讯云、阿里云等云服务器供应商处购买云服务器,如果是在校大学生,可以享受便宜的学生特惠服务器。
如果是初次接触云服务器的读者,可以参考以下博文:教程以阿里云为例,但不同的云服务器操作大同小异,稍作调整即可。
实验步骤
1.申请云服务器
2.配置frp服务端
远程连接自己的服务器,进入终端。进入终端后注意当前的用户是否为root,用户名可从启动服务器后的第一行文字获知:
图中红线处显示的字符串为"admin",说明我现在正处于admin账户下,需要切换到root账户,在终端中输入:
当看到红线最新弹出的命令行中"@"前的字符串变成"root"时,说明已经成功切换至root用户,此时,我们在终端中输入命令将路径切换至root目录下:
接下来,我们访问github,查看frp的最新版本。
本文使用的frp版本为v0.31.1,以下均用v0.31.1作为示例,frp版本如有不同,只需要将下面指令中的所有"v0.31.1"字段更换成目前的版本号即可。
从github上获取并且安装frp:
frp安装之后,进入目录并修改frp服务器端配置:
修改frps.ini内容如下:
修改完成,保存(修改时用到vi编辑器,对vi操作不熟悉的读者可以参考该博客: CentOS常用命令之:VI)
在终端中通过以下命令启动frp:
每次需要使用frp服务时,都必须在/root/frp_0.31.1_linux_amd64/目录下输入该命令启动frp服务端,如果觉得每次要用时都要打开比较麻烦,可以通过编写自启动模板使该服务开机自启动,具体的设置可以参考该博客:
3.在客户端下载并配置frp
在 github.com/fatedier/frp...下载对应版本的Windows版frp,由于本推文中,服务器端使用了frp_v0.31.1_linux_amd64.tar.gz,相应的,在Windows上应该下载frp_v0.31.1_windows_amd64.zip
将下载好的.zip文件解压到自己喜欢的目录,进入该文件夹,可以看到很多文件名中带有"frps"的文件以及文件名中带有"frpc"的文件,分别对应frp的服务器端和客户端,我们正在配置的是客户端,因此文件名中带有"frps"的文件均无需保留,可以删除。
删除后应具有以下文件/文件夹。
用记事本打开frpc.ini,编辑内容如下:
PS:
2. remote_port和server_port所用端口号不能被云服务器的其他进程占用,而且必须被云服务器的防火墙放行(我的印象中,阿里云默认不放行,需要在安全组中设置允许该端口的tcp/udp通信;腾讯云默认全放行,不用设置。)
3.保存时确认frpc.ini编码类型为UTF-8。
大功告成,可以运行了。在打开CMD或者Windows Terminal用cd命令进入frpc.ini所在目录,输入:
当出现类似下图的输出时,说明frpc.ini正常启动,已经可以通过公网IP对你的设备进行访问:
4.创建一键运行脚本(可选)
再做一个小小的优化,每次运行frp服务都要在cmd进入该目录输入指令,略显麻烦,因此,在该目录下创建一个runfrp.txt文档,在文档的第一行输入:
保存文件,修改文件名为runfrp.bat,以后只要双击这个.bat文件,就可以一键启动frp客户端服务了。
至此,frp配置完成。
Docker 本地部署Rss订阅工具并实现公网远程访问
Docker部署Rss订阅工具Rsshub并实现公网远程访问的步骤如下:
首先,确保设备已安装Docker,然后在Linux CentOS上通过以下步骤安装:设置Docker存储库,以便从官方源获取最新版本的Docker,接着启动Docker服务。
部署Rsshub的步骤如下:从Docker镜像库拉取rsshub容器,将其运行在1200端口,启动后通过`docker ps`检查服务状态,确认正常运行。本地访问时,只需在浏览器访问1200端口即可。
然而,为了远程访问,需要安装cpolar内网穿透工具。访问cpolar官网下载并安装,通过Cpolar配置内网映射,将Rsshub的本地1200端口映射到公网9200端口。登录Cpolar管理界面,创建隧道并获取公网访问地址。
使用Cpolar提供的固定二级子域名(如rsshub.cpolar.cn)访问,可以得到一个永久且易于记忆的公网地址。只需升级Cpolar套餐,设置二级子域名并将其关联到隧道,即可实现远程访问。
最后,确认固定公网地址配置成功,无论是通过随机生成的隧道还是二级子域名,都可以实现远程无限制访问Rsshub订阅源,从而实现本地部署的Rss订阅工具公网远程访问。