搞云服务器中出现的问题及勉强的解决(一)前言1.ssh连不上2.ssh经常自动断开3.刚刚华为云给打了个电话4.ssh直接进不去docker5.docker里的ubuntu装python时提示包破损
前言
我的计划是这样的,以后搞web和小程序之类的东西,统一放在云服务器里用docker包着,直接在docker里进行开发,这样我从腾讯云跑路去其他云薅新客优惠的羊毛的时候会方便不少,往其他地方的迁移也容易。
我预想的学习路线是,先用Django边学后端边做,先搞一个简单的博客出来,熟悉http协议,数据库,内存数据库,websocket,thrift,nginx,然后再搞前端。
那么到2022/4/21为止,卡在了在docker里装Django的步骤上(笑。
抓耳挠腮地卡了一上午之后,我痛定思痛,决定先总结一下经验,然后放放,过几天再搞这些。
1.ssh连不上
腾讯云的文档里有解决方案
https://cloud.tencent.com/document/product/213/37925
(公众号插入的链接是其他公众号文章时才能跳转,笑)
VNC登录之后的终端是真的难用
后来发现它登录的用户名应该是默认的ubuntu,我一直是用的我自己实例的的名称ltserver,虽然也会有模有样的提醒我permission denied,让我感觉自己是输错了密码所以去控制台改了好多遍密码,但应该就是连不上的。所以腾讯云ssh的时候 应该是ssh ubuntu@xxx.xxx.xxx.xxx,其他云是root
2.ssh经常自动断开
如题,ssh连上之后经常过一阵子就断开
一开始我的错误提示是:
client_loop: send disconnect: Broken pipe
按照改ClientAliveInterval和ClientAliveCountMax的方式改了好多次好多遍之后
https://www.jianshu.com/p/f8d9f28b830e
错误提示变成了
Socket error Event: 32 Error: 10053.
Connection closing...Socket close.
Connection closed by foreign host.
找解决方案
https://blog.51cto.com/xiaogongju/2068322
我看挺符合我的 我也是用xshell(虽然大概率和用什么东西连它没关系,我用windowsterminal的时候ssh也会自动断),我也是在前几次debug的过程中老是提醒我没有写权限生气直接sudo chmod 777了我的sshd_config文件
结果在几分钟之后又自动断开了(笑,错误提示和原来一模一样,一点用没有啊
https://zhuanlan.zhihu.com/p/58336487
去看上边这个帖子,开始怀疑是校园网的问题,顺便改了自己的userDNS为no,再把权限改回400,又断了,证明没用
换成热点,真就没事了。
n天后更新:现在用校园网也没有问题了,很奇怪。
3.刚刚华为云给打了个电话
这人挺有礼貌的,提示我觉得贵可能是因为没找到新用户优惠
我能办那事儿吗,肯定是提前全网比价了一番
他问了问配置,告诉我华为有同样配置新用户二百多一年的
那我能同意吗,人家腾讯云432能买三年
笑死......
然后笑着笑着就哭了......
归根结底还是因为我真的穷啊
4.ssh直接进不去docker
想在本地配置能用ssh直接进入docker,创建容器时把22端口映射到了20000,在docker内也装上了opensshserver,明明在云服务器端也开放了20000端口的,但就是不行
后来去docker里改了改ssh的config,改的什么忘了
变成了这样,还是进不去,但是能输密码了,只不过请求被拒绝,原因应该就是像如下链接
https://cloud.tencent.com/developer/article/1454777
但是我改了permitrootlogin之后没有用,还是得绕着圈子解决这事儿
一是把本地公钥通过ssh服务器再进docker添加到公钥配置里边。
二是在docker里新建个用户,绕过对root的限制。
我用的1,以后可以在本地直接ssh就能到docker,也算成功了
5.docker里的ubuntu装python时提示包破损
我想装Django->我得装pip->我得装Python->太低版本的没法用->新版本的python包老是提示破损
具体来说,我是python3.7,3.8,3.9都装不上
如果用sudo apt-get install python-pip的话也确实能装上,但是装上的pip依赖python2.7,2.7就会再覆盖掉我的新版本python
我认为问题应该是docker拉取的ubuntu是最小化的包,当我unminimize之后里边原来存在的包就起了冲突,所以没办法安装python,aptitude也是一样,而不unminimize的话,他似乎连https都读不了,缺点证书啥的。
我又想直接打包自己的系统成一个镜像给docker,但是发现有很多文件没有打包的权限,比如bashhistory,比如viminfo,容器倒是可以正常生成,但就是因为没有bashhistory导致每打一句命令他就会显示命令记不住。
我现在唯一能想出的解决办法只剩下直接找一个ubuntu的完整镜像给docker,但是找了一圈也没找到。
emo了,等我有空再解决吧。
有想法的朋友也可以给我点建议,24小时在线 :-)