首先上github链接(https://github.com/racaljk/hosts/blob/master/tools/lhosts),复制这个shell脚本,放在某个文件夹下,我是放在/etc/lhosts下。
先打开hosts文件vim /etc/hosts,发现其中内容很少,只有10+行,运行刚刚的脚本sudo bash /etc/lhosts之后再看看hosts文件。
# 远程 hosts 开始标记,请在 上方 添加其他内容
# Copyright (c) 2014-2017, racaljk.
# https://github.com/racaljk/hosts
# Last updated: 2017-04-20
# This work is licensed under a CC BY-NC-SA 4.0 International License.
# https://creativecommons.org/licenses/by-nc-sa/4.0/
# Localhost (DO NOT REMOVE)
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
# Modified hosts start
# Armorgames Start
93.184.220.39 cache.armorgames.com
93.184.220.39 gamemedia.armorgames.com
93.184.220.39 quests.armorgames.com
93.184.220.39 armatars.armorgames.com
....(其后省略3000+行)
之后,你懂的。
原因
原因是域名解析到IP地址的DNS过程被阻止了,使得域名无法解析到正确的IP地址,进而无法连接到正确的服务器。而DNS解析的过程是先去本地hosts文件中去找有没有对应的缓存,然后再连接DNS服务器,修改hosts中的内容就可以跳过连接DNS服务器解析域名这一步。
附1:定时启动脚本
进入/etc文件夹,打开sudo vim crontab
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/ cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/ cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/ cron.monthly )
#
在14行之后插入5 12 * * * root bash /etc/lhosts,其中5代表分,12代表小时(以24小时制),后面三列分别为年、月、星期,都为*代表是每年每月的每一天,因此插入的命令代表每天的12点5分以root的身份运行命令bash /etc/lhosts
附2:VIM永久显示行号
运行命令vim ~/.vimrc,在最后添加set nu,保存关闭。注:如果.vimrc文件存在则在最后添加命令,不存在则新建文件。