使用nps做内网穿透远程桌面

news/2024/11/16 8:34:50/

nps内网穿透

首先进入到服务器的管理页面,以腾讯云为例(我只有腾讯云的服务器)
在这里插入图片描述
点击镜像信息里的重装系统,将服务器重装成centos的系统(7.6, 8.0和8.2的都可以),如果你习惯Ubuntu或者debain也行
在这里插入图片描述
重装完成后点实例里重置密码,接着就可以用ssh工具连接到这台服务器了,用户名root,密码就是重置后的密码

为了避免后面频繁的添加端口规则,可以直接在防火墙一栏放通全部端口。如果怕被入侵还是老老实实用一个加一个
在这里插入图片描述

用ssh连接工具登录这台服务器,登上去第一件事是干嘛呢,当然是运行yum update -y了。然后可以装一个宝塔,这工具我还是很喜欢的,简化了一些步骤。一键安装命令:yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh,安装完成后通过外网面板地址进入到管理页面改入口地址和账号密码
在这里插入图片描述
接着去 https://github.com/ehang-io/nps/releases 下一个linux_amd64_server.tar.gz上传到服务器,也可以使用宝塔的远程下载
在这里插入图片描述
下载完成后直接用宝塔解压。可以看看nps的官方文档,还是很详细的,而且是中文的。https://ehang-io.github.io/nps/#/?id=nps

解压完成的用ssh工具运行cd /www/wwwroot/./nps install

接着编辑nps的配置文件 /etc/nps/conf/nps.conf,宝塔和vim都可以。主要改端口,用户名和密码。域名有的话也可以改
在这里插入图片描述
改完之后运行nps start启动nps,然后firewall-cmd --zone=public --add-port=8080/tcp --permanent开放端口(注意端口修改成上面配置文件的端口)
在开放一下8024这个端口,也是nps的。可以在配置文件中修改 firewall-cmd --zone=public --add-port=8024/tcp --permanent

firewall-cmd --reload重新加载防火墙生效

接着就可以通过ip:端口访问nps的登录界面了,在客户端界面添加一个,备注改一下,其他都可以默认

./npc -server=ip:8024 -vkey=iy1o9dolt0ujpclv -type=tcp下面那个客户端命令就是需要在被远程的电脑上运行的

还是在这个页面https://github.com/ehang-io/nps/releases下载win的客户端windows_amd64_client.tar.gz,解压后里面的npc.exe就是需要的了,
在这里插入图片描述

直接运行在cmd下运行npc.exe -server=ip:8024 -vkey=iy1o9dolt0ujpclv -type=tcp就可以在nps管理界面看到客户端从离线变成了在线了。(注意修改命令中的ip为自己的ip或者域名)

作为服务运行

运行npc.exe install -server=ip:8024 -vkey=iy1o9dolt0ujpclv -type=tcp 会创建一个服务(注意修改命令中的ip为自己的ip或者域名)
然后npc.exe start 启动这个服务,这样每次开机都会自动启动
在这里插入图片描述

创建端口映射

新增tcp隧道,客户端id就是客户端那一栏的id,第一个创建的一般是2
在这里插入图片描述
放行服务器端口
firewall-cmd --zone=public --add-port=33890/tcp --permanent
firewall-cmd --reload

接着就可以用win自带远程连接ip:33890了
在这里插入图片描述

问题

1、服务器8M带宽会不会卡
不会,很流畅,基本不会有卡顿的情况,但是和本地还是有区别的。其实微软自带的远程已经优化的很好了,占不了太多的带宽,我估计4-5M就够了
2、这么麻烦,还不如用xxx
你喜欢用啥就用啥呗,我也没拿刀架你脖子上,没必要说一句吧

公网直连

宽带设置

首先宽带需要自己办的,然后问办宽带的能不能给公网IP,一般是不能,看地方和运营商,有些是会额外收费。有公网IP后,还需要将光猫改成桥接,用路由器拨号(改光猫需要让办宽带的弄,他们可以远程弄)。另外,喜欢折腾的可以搜索光猫牌子型号,看有没有提权的漏洞,普通玩家不建议这么玩。

路由器设置

上网方式需要选择宽带拨号,之后填写账号密码即可

然后是DHCP服务,这是路由器用来绑定IP和设备mac,只要设备mac不变,路由器分配给设备的内网地址也不会变。正常情况下不固定也不会变,具体看路由器。
在这里插入图片描述
接着是端口转发,也就将路由器收到的端口请求转发到内网的某台机器,比如将内网中路由器的33890端口的请求转发到192.168.2.218:3389。这个名称根据路由器的不同可能不一样,比如有的叫端口映射。此时访问路由器的公网IP:33890就可以连接到内网的电脑了
在这里插入图片描述

扩展

提一个有意思的功能,dmz主机。是将路由器收到的所有请求转发到设置的dmz主机上,比如你上面不设置端口转发,然后将dmz主机设置为192.168.2.218,那么你公网ip:3389就可以直接连接到这台电脑,其他端口也是一样的。
在这里插入图片描述
为什么有端口转发还需要这个呢?因为端口转发数量是有限的,我的路由器只能设置几条转发规则。如果这样设置的话,这个内网电脑就可以完全跟公网IP关联了,也就等同于一台完整的服务器了。(当然80,443,8080这些端口都已经被运营商封了)

同时设置了端口转发和dzm主机会优先端口转发。转发规则没有的才会转发到dmz主机上。

ddns

运营商分配的公网IP一般都会变的,所以需要用ddns动态解析到域名上,每隔几分钟获取一次公网IP,判断是否变了,如果没变就什么都不做,变了就将新的IP解析到域名上

我之前用的是自己写的Python脚本,域名是腾讯云的,腾讯云有http解析域名的接口。
这是相关文档:https://www.dnspod.cn/docs/records.html
id和token获取:https://docs.dnspod.cn/account/5f2d466de8320f1a740d9ff3/

Python脚本如下:

import json
import requestsclass DDNS:def __init__(self, _id, token):self.data = {'login_token': f"{_id},{token}", 'format': 'json'}def updateRecord(self, domain):ip = self.getIP()if not ip:print("获取本地IP失败!")return _id, _ip = self.getRecordIP(domain)if(_ip != ip):print(f"本地IP:{ip}, DNS记录: {_ip}")self.modifyRecordIP(domain, _id, ip)else:print("IP未变动,不进行任何操作!")def getIP(self):url = "http://ip.03k.org"try:resp = requests.get(url, timeout=30)except:return Nonereturn resp.textdef checkAPI(self):url = "https://dnsapi.cn/Info.Version"try:resp = requests.post(url, data=self.data, timeout=30)except Exception as e:print(e)return Falsereturn resp.json().get("status").get("code")def getUserLog(self):url = "https://dnsapi.cn/User.Log"try:resp = requests.post(url, data=self.data, timeout=30)except Exception as e:print(e)return Falsereturn resp.json()def getRecordIP(self, domain, sub_domain="www", record_type="A"):url = "https://dnsapi.cn/Record.List"data = self.data.copy()data["domain"] = domaindata["sub_domain"] = sub_domaindata["record_type"] = record_typetry:resp = requests.post(url, data=data, timeout=30)except Exception as e:print(e) return (0, None)d = resp.json()if d.get("status") and d.get("status").get("code"):records = d.get("records")return records[0]["id"], records[0]["value"] if records else (0, None)else:return (0, None)def modifyRecordIP(self, domain, record_id, value, sub_domain="www", record_type="A"):url = "https://dnsapi.cn/Record.Modify"data = {"domain": domain, "record_id": record_id, "sub_domain": sub_domain,"record_type": record_type, "record_line": "默认", 'value': value,"ttl": 600, }data.update(self.data)try:resp = requests.post(url, data=data, timeout=30)except Exception as e:print(e) return (0, None)d = resp.json()print('修改记录结果:', d)return d.get("status").get("code")  if __name__ == "__main__":_id = 111111token = "xxxxxxxxxxxxxxxxxx"dd = DDNS(_id, token)domain = "baidu.com"dd.updateRecord(domain)

ipv6直连

这种方法其实很早就有了,我稍微提一下,我也没试过。

其实很早之前就有人提出了个新概念ipv6,而且电脑也早就支持,从网卡属性就可以看出来。大部分高校的校

网也很早就支持ipv6了,大学时还能看到一些ipv6免费使用校园网这些文章。
在这里插入图片描述
但是这东西现在局限性很大,对于大部分人来说都挺鸡肋的。限制条件如下:
1、运营商支持(通信两边都需要支持)
2、路由器支持(通信两边都需要支持)
3、dns支持(如果想要用域名连接,不过,现在很多域名提供商都可以解析ipv6了)

因为ipv6和ipv4协议并不互通,所有要用ipv6通信,就必须双方都是。虽然现在大部分APP或者网站说已经支持,其实也只是支持而已。你如果禁用ipv4,还是打不开,或者能打开但是样式乱了,功能不能完全使用等。这种是因为他某些服务确实有ipv6的服务器,并不是所有的服务器都已经换了,只是为了应工信部的要求。

可以这么说,只要nat技术还能用,ipv6很难完全取代ipv4,至少在最近的几十年里。原因只有一个字:钱。要完成取代的话,那么之前的所有网络设备都用不了,谁来承担这个损失?普通用户肯定不能接受,你给我提供的服务啥也没变,就给了个公网IP,我可能都用不到,还要我付那么大一笔钱给你。运营商也不能接受,我也不是慈善机构。那么公司肯定也不能接受,你说换就换,我的网络设备损失谁来承担。所以要完全过渡,需要慢慢的更换,这是个很长的过程

如果只是用于远程连接的话,这东西还是有点用的,因为我们只需要保证远程的电脑和被远程的电脑满足条件。打开测试网站就可以看到电脑是否支持了,https://www.test-ipv6.com/
在这里插入图片描述
如果看到这种,只是说明你电脑没有被分配ipv6地址,可能是路由器不支持。可以用网线直连光猫再试一下,如果有了那就是路由器不支持,我在恩山看到某些路由器可以通过刷一些特殊的固件来支持,当然我也没试过。如果直连光猫都没有检测到,那就只能向你的运营商咨询了。(我之前还问了办宽带的,为什么没有ipv6地址,不是说普及了?然后就被喷了,谁告诉你ipv6普及了,然后就没有然后了)

如果公司电脑也是这种情况,那就没办法,换其他办法吧。你总不可能跟运维说,给我整个ipv6。

两边都能检测到ipv6地址,就可以使用这个IP远程连接了,步骤和其他的一样。


http://www.ppmy.cn/news/240404.html

相关文章

android 3d桌面壁纸,五款超酷安卓手机3D桌面软件合辑推荐

3D桌面一直以来都是备受大家青睐的东西,没办法,3D桌面主题既绚丽又实用,没人会不喜欢。3D桌面给人们展示的是一个不同维度的世界,人们会感觉更立体、更逼真,色彩效果也会更加灿烂,给我们以非常好的视觉享受。小编就一直都有一种感觉,即使再平凡的东西,只要和3D、立体扯…

计算机桌面堆,如何让你的电脑桌面看起来简洁、美观?

很多年前,我们就开始利用电脑来学习和办公,得益于现代计算机的图形用户界面,我们从电脑桌面就可以打开不同的内容,进入到不同的世界。但对于经常使用电脑的人来说,使用时间久了,很容易造成电脑桌面的杂乱不堪,小小的桌面堆满了各种应用图标及文件等。这样的电脑桌面在打…

如何远程linux服务器桌面,LINUX操作系统如何远程登录桌面

相比window来说linux远程桌面登陆需要第三方软件来实现,之前用ssh登陆的都是字符界面;昨天试了试远程桌面也是可以的,方法很多,这儿只阐述比较好用的一种;使用时,关闭windows防火墙,或者开启相应的防火墙端口;这里使用…

计算机如何快速返回桌面,打游戏怎么快速返回桌面

如何在玩游戏时快速弹回桌面 Ctrl alt del调出任务管理器! 您可以转到桌面 如何在玩游戏时快速返回桌面。 AIT TAB不起作用,请按键盘上WINDOWS窗口图标的键 D 如何在玩游戏时尽快返回原始计算机桌面 房东说是最快,我的经验是首先打开浏览器…

centos7重启桌面服务_CENTOS7安装桌面系统

CENTOS7安装桌面系统 # yum upgrade # yum -y groupinstall "X Window System" 一.GNOME桌面环境: 1、安装GNOME桌面环境。 # yum -y groups install "GNOME Desktop" 2、启动桌面,然后重启系统.完成安装后输入如下所示的命令: # startx # reb…

JAVA桌面宠物

忄辰桌面宠物【静态】【动态】 最近寒假刚刚开始,然后时间很多,就想做一款桌面宠物,但是本人能力有限,只能做个大概的,其实我觉得做得也挺好看的是吧QAQ,想要详细做动态的话可以参考链接2,我做…

在线桌面版API帮助文档上线啦(聚集常用的技术类帮助文档),方便网友们在线查阅,会不断增加!

在线桌面版API帮助文档上线啦(聚集常用的技术类帮助文档),方便网友们在线查阅,会不断增加!,大家有chm版本的,欢迎分享出来,有空就把它通通转成html在线版本的,这样不管网友们走到哪里,只要可以上…

【已解决】-Mac/Mac mini/Macbook上修改鼠标指针大小

问题: MacOS默认的鼠标指针太小了,平时很容易找不到在哪里。 解决办法: 在 Mac 上,点击苹果菜单 >“系统偏好设置”,然后点按“辅助功能” 。 点击“显示”,然后点击“指针”。 设定以下任一选项…