服务器修复系统&ftp记

自闭两小时=一篇博文
9月11日感谢hz大佬出给我一台fx8300+hd7770嘿嘿
并不熟练地搭建ftp,nginx,和teamviewer。
结果正常运行两天后

多次重启无效,电脑开着开着引导就不见了????
接下来长时间重装系统
1.装完系统显卡只有DP有输出,HDMI无输出,且OW只有10帧,经排查是显卡驱动没有安装,多方查找驱动,最后还是靠360流氓软件才装好。
2.ping不通,关闭公网防火墙后解决
3.ftp方面选择 file zilla sever,结果发现长期无法连接服务器控制端。但是已经存在的用户可以正常访问。排查发现ftp zilla服务未开启。

4.其他电脑但是采用windows文件资源管理提示找不到元素,且无法弹出用户名和密码的登录界面,万能的百度有解决方案

有服务器啦

捡了台FX8300+HD7770当服务器,我也终于有服务器了

电费+30 理智+30 肝脏-30

顺便在南实验楼测一下速度

百兆都没有,枯了

经过推荐用上了Mouse without board 好用,可惜鼠标有点点卡顿,如果做到teamviewer那样就好了

ip-tunnel技术

穿透内网,连接动态ip,内网ip打洞-----p2p实现原理
来源:https://blog.csdn.net/zhngcho/article/details/82907846
(1)问题的由来:

大部分的电脑上网都是用动态ip地址。内网的ip是由net(路由、网关)分配的,net发出去的时候,映射到一个公网地址,这是一个动态计算的过程(特别是端口号),因此称为动态ip地址。外部网是无法直接访问内网计算机的,但在大部分情况下,借助一台有公网ip地址电脑(这里叫服务器),通过某种方式,可以实现连接,这种技术较“打洞”。

如图:

有一个私有网络192.168.0.2,client a是其中的一台计算机,这个网络的网关natA(一个nat设备)的外网ip是202.103.142.29(应该还有一个内网的ip地址,比如10.0.0.10)。如果client a中的某个进程(这个进程创建了一个socket,这个socket绑定1234端口)想访问外网主机129.208.12.38的2000端口,那么当数据包通过nat时会发生什么事情呢?

先nat会改变这个数据包的原ip地址,改为202.103.142.29。接着nat会为这个传输创建一个session(session是一个抽象的概念,如果是tcp,也许session是由一个syn包开始,以一个fin包结束。而udp呢,以这个ip的这个端口的第一个udp开始,结束不确定,也许是几分钟,也许是几小时,这要看具体的实现了)并且给这个session分配一个端口,比如62000,然后改变这个数据包的源端口为62000。所以本来是

1
192.168.0.2:1234->129.208.12.38:2000

的数据包到了互联网上变为了

1
202.103.142.29:62000->129.208.12.38:2000

一旦nat创建了一个session后,nat会记住62000端口对应的是192.168.0.2的1234端口,以后从129.208.12.38发送到62000端口的数据会被nat自动的转发到192.168.0.2上。(注意:这里是说129.208.12.38发送到62000端口的数据会被转发,其他的ip发送到这个端口的数据将被nat抛弃,这就是真正头痛的问题)这样client a就与server s1建立以了一个连接。

如果client a的原来那个socket(绑定了1234端口的那个udp socket)又接着向另外一个服务器server s2发送了一个udp包,那么这个udp包在通过nat时会怎么样呢?

答案是net决定的,不同的net有不同的答案。

这里需要介绍一下NAT的类型:
NAT设备的类型对于TCP穿越NAT,有着十分重要的影响,根据端口映射方式,NAT可分为如下4类,前3种NAT类型可统称为cone类型。
(1)全克隆( Full Cone) : NAT把所有来自相同内部IP地址和端口的请求映射到相同的外部IP地址和端口。任何一个外部主机均可通过该映射发送IP包到该内部主机。
(2)限制性克隆(Restricted Cone) : NAT把所有来自相同内部IP地址和端口的请求映射到相同的外部IP地址和端口。但是,只有当内部主机先给IP地址为X的外部主机发送IP包,该外部主机才能向该内部主机发送IP包。
(3)端口限制性克隆( Port Restricted Cone) :端口限制性克隆与限制性克隆类似,只是多了端口号的限制,即只有内部主机先向IP地址为X,端口号为P的外部主机发送1个IP包,该外部主机才能够把源端口号为P的IP包发送给该内部主机。
(4)对称式NAT ( Symmetric NAT) :这种类型的NAT与上述3种类型的不同,在于当同一内部主机使用相同的端口与不同地址的外部主机进行通信时, NAT对该内部主机的映射会有所不同。对称式NAT不保证所有会话中的私有地址和公开IP之间绑定的一致性。相反,它为每个新的会话分配一个新的端口号。

第一种最为理想,基本就是无需打洞;

第四种最糟糕,根本就不能打洞。好消息就是这种net基本没有,很少。

所以关键是第二和第三种net类型。

因此打洞的本质就是利用net的特性“只有当内部主机先给IP地址为X的外部主机发送IP包,该外部主机才能向该内部主机发送IP包”

(3)实现步骤(各个实现可能都不一样)

我们先假设一下:有一个服务器S在公网上有一个IP,两个私网分别由NAT-A和NAT-B连接到公网,NAT-A后面有一台客户端A,NAT-B 后面有一台客户端B,现在,我们需要借助S将A和B建立直接的TCP连接,即由B向A打一个洞,让A可以沿这个洞直接连接到B主机,就好像NAT-B不存在一样。
实现过程如下:
1、 S启动两个网络侦听,一个叫【主连接】侦听,一个叫【协助打洞】的侦听。
2、 A和B分别与S的【主连接】保持联系。
3、 当A需要和B建立直接的TCP连接时,首先连接S的【协助打洞】端口,并发送协助连接申请。同时在该端口号上启动侦听(保证net类型3也能成功)。注意由于要在相同的网络终端上绑定到不同的套接字上,所以必须为这些套接字设置 SO_REUSEADDR 属性(即允许重用),否则侦听会失败。
4、 S的【协助打洞】连接收到A的申请后通过【主连接】通知B,并将A经过NAT-A转换后的公网IP地址和端口等信息告诉B。
5、 B收到S的连接通知后首先与S的【协助打洞】端口连接,随便发送一些数据后立即断开,这样做的目的是让S能知道B经过NAT-B转换后的公网IP和端口号。
6、 B尝试与A的经过NAT-A转换后的公网IP地址和端口进行connect(这就是所谓“打洞”),根据不同的路由器会有不同的结果,有些路由器在这个操作就能建立连接(例如我用的TPLink R402),大多数路由器对于不请自到的SYN请求包直接丢弃而导致connect失败,但NAT-A会纪录此次连接的源地址和端口号,为接下来真正的连接做好了准备,这就是所谓的打洞,即B向A打了一个洞,下次A就能直接连接到B刚才使用的端口号了。
7、 客户端B打洞的同时在相同的端口上启动侦听。B在一切准备就绪以后通过与S的【主连接】回复消息“我已经准备好”,S在收到以后将B经过NAT-B转换后的公网IP和端口号告诉给A。
8、 A收到S回复的B的公网IP和端口号等信息以后,开始连接到B公网IP和端口号,由于在步骤6中B曾经尝试连接过A的公网IP地址和端口,NAT-A纪录 了此次连接的信息,所以当A主动连接B时,NAT-B会认为是合法的SYN数据,并允许通过,从而直接的TCP连接建立起来了。

(4)让内网主机做服务器

以上的应用主要在于做p2p软件,如果我们想用家里的电脑,做服务器,是不需要这项技术(“打洞”)的,应为我们可以把路由器设置为net1型,可以直接设置端口映射:

但还是需要一个外网固定ip的服务器来负责通知其他客服端,因为拨号时得到的ip(这其实也是外网ip,就是其他的计算机可以直接访问你的)每次还是变化的。

上课摸鱼

上课被推送了个UGATIT就沉迷其中了23333.
现在无监督学习和GAN真火 StyleGANBigGAN都好强
上课第一天顺便蹭课了数分,计组和Web
Web老师很强的样子,第一节课就把萌新吓得半死。

一次失败的建模

尝试解决高中时困扰了很久的三角洲式3d打印机控制方法,结果建模一个小时发现结构设计是错的。。。

(自由度不够了)

本着“自己解决不了的东西就交给别人解决”,查阅文献一篇

文中的球形铰和虎克铰是什么鬼啊。。。。。。

hook joint 直接用音译感觉很别扭

1
2
参考文献
[1]周培,黄天宇.一种并联式3D打印机的设计与制造[J].科技通报,2017,33(09):89-91.