Linux
之前为了群晖能刮削媒体信息,有提到过群晖改host文件。群晖事实上也是基于Linux,此文伸发出针对所有Linux服务器的修改hosts文件的方法。
当我们在常规的Linux服务器上也需要访问类似themoviedb.org这样在国内有CDN的网站,但国内解析不出速度最快的ip,就需要修改服务器的host文件以达到加速访问的目标。
文件位置
通常,Linux系统下host文件位于:
/etc/hosts
虽然Linux有很多分支,比如CentOS,Ubuntu,Debian……但是hosts文件默认都是位于上面的位置,而且不太可能会被修改。
VI命令编辑hosts
假如你的Linux服务器没有图形界面,只能使用命令行,则可以使用VI命令对hosts文件进行修改。
SSH客户端连接服务器后,如果不是root用户,应该先切换为root用户身份
切换root用户方法
su
命令 ,然后输入root密码,完整命令为 su root
当后缀没有用户名的时候默认为root,所以su
即可。
sudo
暂时以root用户执行命令,例如 sudo vi /etc/hosts
表示以root用户执行vi命令编辑hosts文件。
sudo -i
此命令会给其后的所有命令提权,不用因为权限不足频繁输入密码,也可达到切换为root用户的效果
虽然多种方法皆可,但为了方便,推荐使用 su
或者 sudo -i
打开hosts
切换为root用户后,执行:
vi /etc/hosts
此时会显示目前hosts文件里的内容,并且可以使用方向键移动光标,但不能修改内容。
进入编辑模式
按键盘 i 键,即可进入编辑模式,i = insert,表示插入字符。
此时可以移动光标,并且键入字符,且字符会插入原有内容,不覆盖。
hosts文件的格式是:
ip 域名
中间有半角空格。例如:
8.8.8.8 www.site.com
指定了www.site.com的ip是8.8.8.8
如果hosts文件中存在此条目,则服务器每次访问www.site.com,就会直接解析至8.8.8.8,而不用去查询DSN服务器。
完成修改 保存退出
在VI命令的文本模式或编辑模式中,按下 ESC 键,就会进入命令模式
此时输入
:wq
可以保存并退出,wq = write & quit
如果想不保存退出,则输入:
:q
要是退不出去,可以在后面加个感叹号:
:q!
感叹号表示强制执行。
图形界面修改
宝塔面板
因为有很多小伙伴使用宝塔面板,其实在宝塔里修改服务器hosts更为简单:
- 进入宝塔界面
- 左侧菜单找到“文件”
- 点击上方路径栏回到最顶部
- 找到进入etc目录,
- 在etc目录找到 hosts 这个文件
- 双击 hosts 文件进行编辑
- 编辑好以后点击左上角保存按钮
CentOS 图形界面
也非常简单:
- 打开Home
- 左侧菜单点击 Other Location
- 右侧选Computer
- 点击etc目录,找到hosts文件双击
- 修改后另存一份到桌面
- 再把桌面的拖回原位置覆盖 输入root密码
同MacOS有点类似,hosts文件打开是只读状态,需要多出一步另存覆盖的操作。
Windows
路径为:
C:\Windows\System32\drivers\etc
如果没有修改权限,就右键属性,去掉只读修改权限给写入权限。
然后用你的文本编辑器打开修改即可。
又或者,可以以管理员权限运行你的文本编辑器,比如notepad,然后打开hosts文件进行修改。
Windows下,有的软件也提供了便捷修改hosts文件的方法,比如火绒界面的安全工具,或者Dism++的工具箱,或是uTools的hosts切换插件。
Android
首先需要获取安卓的root权限,然后文件的位置在:
/system/etc/hosts
之后就可以使用手机里的root explorer 或者 ES文件浏览器打开 /system/etc/hosts 进行修改。
又或者可以将Android系统里的hosts文件复制到电脑,修改后再回传。
Android也有一些APP可以帮助修改hosts文件,比如hosts助手,smartHosts等等,但都需要获取root权限,不太推荐。
iOS
iOS要修改hosts需要先越狱,因为我不建议越狱,而且暂时在iOS也找不到需要改hosts的应用场景,所以不推荐修改iOS设备的hosts。