Duke Yin's Technology database

Linux Windows Android修改hosts文件

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。

发布评论

评论

标注 * 的为必填项。