在Ubuntu做开发的时候经常会出现各种可恶的网络问题,本文以Github、ROS为例列举了一些常用的解决方法。
改host
一般没用~
原理
由于CDN分发的不合理或者地区性的不平衡,导致地址被解析到不合适的主机,使得连接状态拉跨。
步骤
用浏览器访问 IPAddress.com 使用 IP Lookup 工具获得 github.com 的ip地址。
sudo nano /etc/hosts
添加如下内容。
xxx.xxx.xxx.xxx(查到的ip) github.com
保存并退出。
更新DNS缓存。
sudo /etc/init.d/networking restart
搞定!
换源
适用于大多数富强、民主、文明、和谐;自由、平等、公正、法治;爱国、敬业、诚信、友善的网络环境。
原理
Ubuntu下更新、安装软件是从指定的源下载的,如果没有设置合适的源,就很有可能网速奇慢或者连接超时。
步骤
- 对于普通的软件,需要更改的是
/etc/apt/sources.list
百度对应版本Ubuntu的源镜像地址,并修改上述文件。
sudo nano /etc/apt/sources.list
原本的可以删了,留下新的就可。例如阿里云、Ubuntu 18.04 LTS的源如下:
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
然后正常更新、安装软件就好。
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential
- 对于其他一些有自己的源的软件,则需要修改
/etc/apt/sources.list.d
文件夹下面对应的文件
以安装ROS为例,需要修改的是/etc/apt/sources.list.d/ros-latest.list
在软件的支持网站(如ROS wiki)上找到源镜像地址,并将文件中的地址替换成合适的地址即可。
有时候会给出快捷指令,直接复制黏贴到命令行执行就能完成修改。
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
搞定!
代理
一般能解决问题,但是麻烦。
原理
众所周知。
步骤
安装代理软件(例如V2ray)。
具体安装步骤参见下面一条帖子。
注:在这里会存在一个问题。v2ray core本身是需要正确的姿势才能下载到的,所以最开始姿势不对的时候就不能下载,继而姿势就对不了,形成一个死循环。解决方法就是找姿势正确的人(比如说我)帮忙下载一下。
关于节点参数,因为关系到搞VPS、安装代理软件服务端、配置单、双边加速等一大堆破事,这里直接找我要一个分享链接导入到软件中就可。
正确设置好系统代理之后只能代理桌面应用的流量,终端里面的命令则使不了。解决方法就是整一个chainproxys-ng
,详见下文。
注:在Ubuntu 18.04及之后的版本桌面设置的代理已经可以代理终端的流量。
其中监听端口可以在代理软件的设置界面找到。
搞定!