如何像访问百度一样访问家里的服务器?(三)

news2024/11/26 3:37:36

来源:公众号【鱼鹰谈单片机】

作者:鱼鹰Osprey

ID   :emOsprey

在前面的两篇笔记《家里宽带搞个服务器,YYDS(一)》《家里宽带申请公网 IP(二)》,介绍了如何获取公网 IP,算是打好了基础。

也有很多道友说,很难获取公网 IPv4,可能每个地方政策不同,运营商不同,政策也不同,因此如果确实有需要的话,可以更换运营商,或者使用 IPv6(这个一般运营商都会给,如果没有,可以打客服问问)。

但是也有道友说 IPv6 现在不少路由器可能不支持,这样连接路由器可能访问不了家里的服务器。但是我们可以用手机热点(电脑连接手机热点)解决,现在手机一般除了分配IPv4,也会有 IPv6 地址,只要流量够多,自用的话,完全够用了。

那么公网IP(v4 or v6)有了,又该如何访问呢?

因为光猫设置了桥接,因此必须使用宽带的账号和密码进行拨号上网

一般的路由器都有这个功能,自己上网搜一搜就行。

db822b3e83d004f684c4d767c487a154.png

(图片来源网络)

宽带账号和密码就是入网通行证,有了这个,运营商才会认可你,允许你联网,因此必须设置。

f8483a2097a5216fab8b39ab13dfca4c.png

设置完成后,正常情况下就应该能够连接路由器上网了,不行的话,重启路由器试试。

现在网络的掌控权已经算是掌握在我们自己手里了,可以为所欲为了。

如何将自己的服务器(电脑、树莓派等联网设备)暴露到互联网呢?即别人可以像访问百度一样访问你的服务器。

最简单方法:DMZ 主机

如果你的路由器支持 DMZ 主机,直接开启这个,就可以免去一大堆设置。

1、在路由器上设置服务器固定 IP

    让你的服务器固定局域网的 IP,这样重启后,服务器的 IP 地址就不会变化了(通过 MAC 绑定)。

2、设置服务器 IP 地址

    在 DMZ 主机界面,设置服务器的固定 IP,比如192.168.1.100。

84dd386c60759dbaf5e84bdadcd5326a.png

(图片来源于网络) 

如此一来,你就可以直接通过公网ip ping 通家里的服务器了。

比如可以手机关闭wifi,然后使用自身网络访问 ping 公网ip(事实上,没有接服务器也能 ping 通,tp-link测试是这样的)。

这样所有从外部访问公网 ip 的流量都自动到了 192.168.1.100 这个服务器中,这就是 DMZ 主机的作用。

此时你可以通过手机 ssh 登录家里的服务器(建议使用树莓派测试,没有防火墙限制,配置简单,功耗也很低)。

注意先在内网测试 ssh 登录没有问题,再尝试使用 公网 ip 登录。

比如 ssh pi@172.70.214.xx, 正常情况下,不管在内网还是外网,都可以正常登录。

端口转发

上面的方法,将服务器的所有端口都开放了,比如外部访问的 2080 端口对应服务器的 2080 端口,一一映射,可能不是很安全(注意,有些端口是从运营商的层面禁用了,因此怎么样都是无法访问的)。

因此我们可以放弃开启 DMZ,转而使用端口进行转发。

0f3551a735fc1193243fe559758a01ba.png

 (图片来源于网络) 

比如外部端口 10000,内部端口 2000,IP 地址 192.168.1.100。

那么你可以通过内网访问192.168.1.100:2000,进而访问服务的 2000端口,如果这个端口是网页,那么可以在浏览器输入上面的信息访问。

而如果使用公网 IP,也是类似的,不过端口变成 10000,如 172.70.214.xx:10000 就能访问家里的资源了(用手机访问)。

如目前鱼鹰老家的树莓派,安装了 Nginx 服务,端口号 20081,在浏览器上就能看到鱼鹰存放的一些测试文件了(后面有机会分享这个)。

5cb8ff5fd5701540b70c8f95dbf1093d.png

(后面准备有时间,把分享的公众号资源放在这里,方便大家下载,云盘速度实在太慢了,但前提是先把树莓派的安全问题搞定,不然被黑客黑了就得不偿失了)。

ssh 登录默认端口是 22(考虑到安全问题,可以换一个),因此这个映射一定要有,否则你在外面就登录不了服务器了。

怎么像访问百度一样访问服务器呢

回到今天的主题,如何像上面图片一样,能随时随地访问呢?答案是 DDNS。

有点网络常识的都知道,网络是通过 IP地址互联的,但是我们ip地址不容易记住,因此有了域名,这样我们可以通过域名来间接得到 IP ,从而访问。

这里需要 DNS 服务来得到我们需要的 IP,比如,我们访问 www.baidu.com,电脑其实也不知道它对应的 IP,但是它可以一级一级往上查,从而得到它的 IP 地址:

58b4630fdd53089759cf27d76c72bb42.png

cfb465a8f210ae2f5e88f096c7eab375.png

可以看到,百度的 IP 是 39.156.66.10

但是这种 IP 一般是固定的,DNS 服务器有存档(就算IP改变了,也会更新),而我们家里的宽带虽然申请了公网 IP,但它是动态的,可能隔一段时间或重启,IP 就变了。

此时我们可以通过邮箱或者其他方式告诉我们公网 IP,通过 IP 访问。但这种方式显然很麻烦。

因此我们可以使用 DDNS 服务。

鱼鹰采用了公云(https://www.pubyun.com/products/dyndns/)的免费 DDNS 服务(TP-Link路由器有这免费功能,但我家的不能用,哎)。

只要在上面注册好,就可以拥有一个免费的 xxx.f3322.net 的域名。xxx 可以任取自己喜欢的。

然后在树莓派中定时通过脚本定时更新公网 IP 到服务器中。

这样你访问域名  xxx.f3322.net 时候,就可以通过公云的 DDNS 服务得到你家里的 IP 地址了。

限于篇幅,下期详述,感谢支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/566177.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python%6简介

Python %6 简介 什么是Python %6? Python %6指的是在Python中使用%6操作符来计算一个数的余数。余数是指在进行整除时所剩余下的数字。在Python中,使用%符号来表示计算余数,因此%6表示计算一个数除以6所剩下的余数。 为什么要使用Python %…

Golang每日一练(leetDay0076) 第k大元素、组合总和III

目录 215. 数组中的第K个最大元素 Kth-largest-element-in-an-array 🌟🌟 216. 组合总和 III Combination Sum iii 🌟🌟 🌟 每日一练刷题专栏 🌟 Rust每日一练 专栏 Golang每日一练 专栏 Python每日…

13 Binder通信之ServiceManager

Binder通信之ServiceManager 一、前言 Android系统中存在很多service,当某个应用调用系统某个service的功能时,往往向系统发出请求,调用该服务的外部接口,这种外部接口我们通常叫做代理接口,也就是说要拿到目标服务需要先拿到目标服务的代理。这个时候,如果每个应用cli…

少林派问题汇总2

Q: torch转bmodel模型时,bmnetp工具报错 A: 有的模型涉及到动态shape,需要设置成动态编译dyntrue Q: A: 内存占满了,进程被系统kill掉了,运行内存建议12g以上 Q: ss…

企业级API网关之典型应用场景

目 录 01 企业面对API与网关的现状‍‍‍‍‍ 02 APIGW介绍及企业应用场景 03 总结 01 企业面对API与网关的现状‍ 在企业中,进行新的系统/应用/产品开发时,具有周密的流程:从需求分析、设计、开发、测试、发布与验收。所以,一…

Emacs之打开交互log(九十六)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

IDEA装上这3款ChatGPT插件,彻底炸裂!!

今天,给大家介绍3款好用的IntelliJ IDEA ChatGPT插件,各有千秋,可以帮我自动写代码,自动改善代码性能和安全并且生成视图对比,以及解释代码,优化代码,生成单元测试用例,更牛逼的是直接可以根据描…

13. Laravel 和 Vue-element-admin多语言配置

后端多语言 1. 安装, 并注册 composer require overtrue/laravel-lang:~6.0 # 添加以下行到 bootstrap/app.php $app->register(Overtrue\LaravelLang\TranslationServiceProvider::class);2. 修改默认语言为简体中文 # vim config/app.php locale > zh_CN…

『树莓派云台机器人』03. 利用SD卡进行树莓派的镜像烧录

目录 1. 下载镜像文件2. SD卡初始化与镜像烧录工具3. SD卡初始化过程4. 镜像烧录过程总结 欢迎关注 『树莓派云台机器人』 博客,持续更新中 欢迎关注 『树莓派云台机器人』 博客,持续更新中 1. 下载镜像文件 链接:https://pan.baidu.com/s/1…

我是普通人,我居然可以这样借力ChatGPT?(此文不卖课)

昨天写了一篇《程序员,如何借力ChatGPT?》,分享了借助AI: (1)撰写通用代码; (2)协助寻找BUG; (3)协助优化算法性能; &…

小白也能看懂的ChatGPT知识介绍

一、ChatGPT介绍 ChatGPT 是一款由 OpenAI 开发的人工智能技术驱动的语言模型应用。以下是 ChatGPT 的主要特点和功能: 自然语言处理:ChatGPT 可以识别和理解自然语言,包括英语、法语、德语、西班牙语等多种语言。它可以回答各种问题、提供各…

【Jetpack】Room + ViewModel + LiveData 综合使用 ( 核心要点说明 | 组合方式 | 代码示例 )

文章目录 一、Room ViewModel LiveData 框架使用核心要点1、Room 框架优化分析2、Google 官方建议的 Room ViewModel LiveData 架构3、Room 与 LiveData 结合使用要点4、Repository 层核心要点5、ViewModel Room 结合使用6、Activity 组件中 ViewModel 使用要点7、Room 框…

RWKV论文燃爆!将RNN崛起进行到底!可扩百亿级参数,与Transformer表现相当!

深度学习自然语言处理 原创作者:鸽鸽 万众期待的RWKV论文来啦! 这股RNN崛起的“清流”,由民间开源组织发起,号称是第一个可扩展到百亿级参数的非transformer架构! RWKV结合了RNN和Transformer的优势:一方面…

【送书】前端系列16集-vue3范型,vue-i18n-next,watch,watchEffect

送书活动:挑选1名粉丝同学哦 免费包邮送。截止时间:2023/5/26号 19 : 00参与底部评论区说说:请在评论中分享你的阅读收获。 中台落地手记——业务服务化与数据资产化 vue-i18n-next vue3 中使用 i18n 需要安装的是 [vue-i18n v9] 的版本 npm…

Nat Biotechnol –精准 CRISPR-Cas噬菌体疗法将为重症感染患者带来福音

治疗血液系统恶性肿瘤的化学药物常会引起骨髓功能抑制(bone marrow suppression)和胃肠道黏膜炎,并伴有肠道通透性增加。肠道细菌(包括大肠杆菌)从胃肠道易位是血流感染的常见原因。肠道细菌引起血流感染导致的死亡率为…

【这个问题纠结了我好多年】3dMax到底使用Intel还是AMD的CPU更好?

随着英特尔和 AMD 的新 CPU上市,是时候进行新一轮的硬件测试了。通过以极具竞争力的价格提供大量内核,AMD 已成为 CPU 领域的有力竞争者。作为回应,英特尔已开始增加其 CPU 中的内核数量。虽然它们提供的内核数量仍然不如 AMD,但它…

基于ESP32-CAM 和 OpenCV 设计的手势控制虚拟鼠标

概述 在本文中,我们将使用ESP32-CAM和OpenCV开发手势控制虚拟鼠标。ESP32 Camera Module和Python程序可用于无线控制鼠标跟踪和点击操作。 入门者必须具备 Python、图像处理、嵌入式系统以及物联网的丰富知识。首先,我们将了解如何控制鼠标跟踪和单击,以及运行 python 程序…

《Kali渗透基础》03. 被动信息收集

kali渗透 1:被动信息收集1.1:收集内容1.2:信息用途 2:域名信息收集2.1:nslookup2.1.1:命令参数2.1.2:示例 - 命令行2.1.3:示例 - 交互式 2.2:dig2.2.1:命令参…

chatgpt赋能python:PythonSplit连续空格

Python Split 连续空格 在Python编程中,split()方法是用来将字符串按照指定的分隔符划分成一个列表。默认情况下,分隔符是空格。但是,在实际应用中,我们可能会遇到连续空格的情况,这时候split()方法会出现一些问题。本…

让你不再好奇怎样无损放大图片

随着科技的不断进步,放大图片已经成为我们生活中不可避免的需求。但是,放大图片往往会导致图片失真、模糊或者变形等问题,让人感到十分困扰。那么,你知道怎样无损放大图片吗?接下来我将分享三个无损放大图片的方法给你…