碎碎念:博主今年大学刚毕业,四年来虽然没学什么东西,但是思考人生花了很多时间。现在思考工作已经完成,正要酣畅淋漓的探索世界。作为一名码农,我觉得想要真正的感受编程的快乐,还是得在Linux上写代码。日常电脑都是Windows,为了在家和公司都能方便地用一个Linux系统,想到了去部一个云服务器,那我们开始吧!
如何选择云服务器?
抛开具体的收费标准不谈,只看使用体验的话,AWS没有什么限制,而且通过域名访问时也不需要备案;国内的服务器可以看这个网站,测试一下距离你常用的主机最快的机房是哪个,你就租哪个服务器。这里我使用的是阿里云服务器ECS。怎么配置ECS这个自行摸索,我选的是最低配版本的,33块钱一个月,按流量另外计费。
如何部署个人节点?
个人节点是什么懂得都懂哈。可以参考github上的这个仓库,按照这上面的教程就可以了。写这篇博客主要是分享一下踩到的坑。
端口配置
下方有两张图,第一张是客户端的配置文件,第二张是服务端的配置文件。在客户端的配置文件中,要注意配置的服务器地址是服务器的公网IP,服务器端是有公/私网IP的,所以配置ip:8080是公网IP的8080端口而不是服务器本机端口8080。
在服务器的配置文件中,8080是服务器的本机端口。所以当你想要从自己的电脑访问这个公网IP里的服务器的8080端口时,应该配置阿里云的【安全组】。
了解【安全组】可以看这篇文章,为了允许所有IP都访问该服务器本机的端口8080,配置成下面这样。授权对象是0.0.0.0。
对于这个【安全组】我有个疑惑的地方:我想访问我的服务器时应该指定内网机器,访问公网的8080就直接转给我的服务器的8080端口了。 难道【安全组】其实是将公网的端口8080映射到我服务器的8080,并且允许所有访问公网ip的请求访问服务器的8080端口?
举个例子:我在公司的电脑有一个内网地址192.168.1.11,公司的公网ip是2.22.222.220(这是个随机ip)。
当我访问github时,本机将请求发给路由器,路由器记录下来,并将源地址从192.168.1.11改为2.22.222.220;当github返回响应的时候,路由器根据之前的记录发回给192.168.1.11主机。
当我在家中,假设ip是3.33.333.330;想要访问公司内的电脑192.168.1.11时,我应该要通过某种方式告诉2.22.222.220的路由器转发给192.168.1.11。那么平时我是通过公司的vpn来做到这一点的,将这个场景和我访问阿里云比较一下,感觉缺少了vpn这个步骤。所以我猜想,在安全组设置8080端口的时候,就已经将公网ip的8080端口与服务器的8080端口映射了。
测试连接性
当我在云服务器上运行节点程序监听8080端口,本机也运行着节点程序时;我想试试程序是否奏效,于是我使用了这个命令:
ping github.com
结果呢,没有响应。这是因为ping使用的是ICMP协议,从上面的图中可以看到,节点程序的配置文件中是HTTP协议,所以想要通过ICMP协议去测试HTTP协议的话就办不到了。
应该用这个命令:
curl https://www.github.com -x http://127.0.0.1:1080
这时就成功连通了
总结
以上就是踩的两个坑了。配端口的时候还复习了一下计算机网络的知识,感觉【安全组】还是比较有意思的。后面想开发下openai的官方api key,朋友们,下次再见吧!