当前位置:首页 > 技术文章 > 正文内容

没有公网IP的机器如何能被外网访问

arlanguage3个月前 (02-01)技术文章24

标题解释:最终服务端(如家中闲置电脑/树莓派)不需要公网IP, 但要被外网访问最终还是要公网IP, 原理就是先让最终服务端与公网IP建立连接, 通过这个连接来访问内部的服务.如下图:

之前用过免费的Ngrok但是不稳定,速度也不行.

今天主要用frp

1.下载

下载地址
https://github.com/fatedier/frp

目录结构如下:

服务端运行frps配置文件是frps.ini, 客户端运行frpc配置文件是frpc.ini

2.配置并启动服务端

这里配置的是 图1 中,中间部分的VPS.打开frps.ini配置参考如下

[common]

bind_addr = 0.0.0.0

bind_port = 7000

token = hereispassword

bind_addr表示绑定的服务端地址,如果有多个网卡,4个0表示任意网卡的IP都可以被访问

bind_port 绑定的服务端端口,这个端口需要在防火墙中放行

token 客户端连服务端时需要输入的密码

配置完成后切换到frp目录 运行

./frps -c ./frps.ini

3.配置并启动客户端

这里配置的是 图1 中,右侧部分,家庭网络中的服务器,打开frpc.ini配置参考如下:

[common]

server_addr = vps公网ip或域名

server_port = 7000

token = hereispassword


[http]

type = tcp

local_ip = 0.0.0.0

local_port = 81

remote_port = 80

server_addr 启动frps服务的公网IP地址,也可以是域名,域名申请可参考<<免费域名申请(一)>><< 免费域名申请(二) >>

server_port 启动frps服务的暴露端口,也就是第2步中配置的端口

token 第2步中配置的token

type 可选tcp或udp. http也是基于tcp的

local_ip 上图黄线箭头所访问的ip. 本机可填4个0,如果服务在局域网的其它机器,也可以写其它机器的IP

local_port 上图中黄线箭头访问的端口号

remote_port 这个是运行frps的机器要暴露的端口.防火墙上要放行.

配置完成后切换到frp目录 运行

./frpc -c ./frpc.ini

注* 本地的服务端口81,并不需要对外网暴露.可对本机进行安全加固,参考<<如何对服务器进行安全加固>>

4.启动真正的服务.

图1 中最右侧, 在家中闲置电脑/树莓派上配置nginx或tomcat的监听端口为81. 并启动之.

5.测试

图1 中最左侧, 在其它网络或手机4G, 访问 http://你的公网IP或域名

即可访问到你家庭网络中启动的nginx或tomcat服务

-----------------end-----------------

欢迎大神补充指正! 如有疑问请留言!

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/2019.html

分享给朋友:

“没有公网IP的机器如何能被外网访问” 的相关文章

404 not found nginx是什么意思

404 not found nginx是什么意思?服务器找不到请求的网页。例如,如果请求是针对服务器上不存在的网页进行的,那么,服务器通常会返回此代码。这个与你nginx设置有关,通常是nginx设置的访问路径下没有相应的网页。一个nginx配置示例:...server {listen 80;ser...

Linux下各种连接数配置及高并发Nginx优化

前言在性能测试过程中,经常会接触到链接数相关的问题,那就是一台服务器最多能支持多少链接数呢?有的朋友可能会说是65535,因为操作系统有65535个端口,那么这个答案准确吗?首先先了解下如何标识一个链接,操作系统是通过一个四元组来标识一个TCP链接:{本地ip,本地port,远程ip,远程port}...

php高并发的瓶颈到底在哪

php高并发的瓶颈到底在哪?是同步阻塞?还是nginx+fpm不断创建-销毁进程资源过度消耗?高并发到底是什么问题,是语言问题嘛,为什么说php不适合高并发?求大佬指点从2009年后一直用lnmp,从5.2.17一直到现在的PHP7.4,做的项目无数个,大到日IP10W+、PV50W+的平台,小到日...

nginx检查提示“unknown directive &quot;stream&quot; in /etc/*/nginx.conf”

yum安装nginx检查时提示“unknown directive "stream" in /etc/nginx/nginx.conf”yum安装nginx,在配置反代时,出现错误:nginx -tnginx: [emerg] unknown directive "strea...

Nginx安全相关配置常用教程 nginx安全策略

1. 限制请求速度设置 Nginx、Nginx Plus 的连接请求在一个真实用户请求的合理范围内。比如,如果你觉得一个正常用户每两秒可以请求一次登录页面,你就可以设置 Nginx 每两秒钟接收一个客户端 IP 的请求(大约等同于每分钟30个请求)。limit_req_zone $binary_re...

大数据分析工程师入门15-数据收集

数据与智能 本公众号关注大数据与人工智能技术。由一批具备多年实战经验的技术极客参与运营管理,持续输出大数据、数据分析、推荐系统、机器学习、人工智能等方向的原创文章,每周至少输出10篇精品原创。同时,我们会关注和分享大数据与人工智能行业动态。欢迎关注。 作者:凯凯连导语上一篇文章我们简单介绍了下大数...