为了防止拖延,我/etc/hosts通过添加浪费时间的网站并将它们指向localhost. 然而,肉体很弱,我经常发现自己恢复了我的变化。
我正在考虑以下解决方案,但我不知道技术上是否可行。
我会请一个值得信赖的朋友过来,用我不知道的强密码创建一个新帐户,更改文件的所有者和权限,/etc/hosts以便只有新用户可以更改该文件,而我和 root不再可以访问它。
用例是我让我的朋友在考试前过来,他更改了文件并设置了拖延措施,而在我需要学习的时候我无法自己编辑文件。考试结束后,我让他“解锁”文件,我可以再次自由浏览。
我刚刚安装了 ubuntu (11.04)。
我已经安装了 apache/mysql/php 等。
我有几个网站
/var/www/site1
/var/www/site2
/var/www/site3
Run Code Online (Sandbox Code Playgroud)
我希望能够访问这些
http://site1.local
http://site2.local
http://site3.local
Run Code Online (Sandbox Code Playgroud)
所以在我的主机文件中我有
127.0.0.1 site1.local
127.0.0.1 site2.local
127.0.0.1 site3.local
Run Code Online (Sandbox Code Playgroud)
然后我复制了/etc/apache2/sites-available/default3次。
所以现在我有:
/etc/apache2/sites-available/site1
/etc/apache2/sites-available/site2
/etc/apache2/sites-available/site3
Run Code Online (Sandbox Code Playgroud)
这些看起来都像(带有适当的站点名称)
<VirtualHost site1.local>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/site1
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/site1/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, …Run Code Online (Sandbox Code Playgroud) 我正在运行 Ubuntu Desktop 12.04,希望能够打开 Web 浏览器 (Firefox),在地址栏中键入别名,按 Enter,然后让浏览器将我带到别名引用的站点。例如,我希望能够输入“ so”并让它带我去http:www.stackoverflow.com等。
我意识到这是“收藏夹”或“书签”已经做的事情,但是,这就像这些工具的纯文本命令行版本。
我怀疑我必须配置一些与 Windows HOST 文件等效的东西,但由于我对 Linux/Ubuntu 非常陌生,我不知道等效的东西是什么,或者是否可以这样做。提前致谢!
我有一台服务器连接到具有 ubuntu 12.04 的路由器。它已经安装好了 apache/mysql/php,可以使用了。文件夹结构是这样的:
/var/www -- this isnt the root
-/libs
-/logs
-/public - this is the root
-/vhosts - all subdomains go here
Run Code Online (Sandbox Code Playgroud)
我在 vhosts 中有一个名为 mysite 的文件夹。我进入 /etc/apache2/sites-available 并创建了一个文件,这里是内容 - >(vhost 文件)。我还在 /etc/hosts 文件中添加了一个条目,其中包含:127.0.1.1 mysite.dev 我也做了
sudo a2ensite mysite
Run Code Online (Sandbox Code Playgroud)
我尝试通过 mysite.dev 和我们的公共 IP 从计算机访问该站点,但我无法查看它。当我尝试我们的公共 ip 时,上面结构中的公共目录确实显示在所有计算机上。但是对于在 vhosts 中添加的任何内容,该站点都不会显示。没有附加域,它只是我们的 ip。我尝试在站点可用的 mysite 文件中将端口从 80 更改为 9999 并尝试使用 myip:9999 但这也不起作用。我究竟做错了什么?
编辑:我忘了提到服务器在路由器上是 dmzed。
我创建了一个 Study 帐户,我在做任何与学校相关的工作时都会使用它。它的目的是消除我的正常帐户的干扰,例如社交媒体和新闻网站。
我知道/etc/hosts可以编辑以阻止访问某些域,但这适用于所有用户,而且我不想在每次我想集中注意力时都必须切换进出管理来更改它。
有什么方法可以阻止特定用户或组的这些域?
如何重命名我的计算机?重命名它/etc/hosts并/etc/hostname做一些奇怪的事情。在重命名之前,我可以使用 sublime 打开这些文件
sudo subl /etc/hosts
Run Code Online (Sandbox Code Playgroud)
但是当我重命名我的计算机(使用 nano)并使用打开任何这些文件时subl,我收到以下消息:
No protocol specified
(sublime_text:20071): Gtk-WARNING **: cannot open display: :0.0
Run Code Online (Sandbox Code Playgroud)
所以我想在上述文件中重命名并不是我唯一要做的事情。
PS:如果我使用 sublime 重命名,在重命名其中一个文件后,当我尝试打开其他文件时会收到相同的消息
我正在建立自己的本地开发网络服务器,主要用于主题开发。
我已经在 Ubuntu 13.04 64 位桌面上成功设置了 LAMP,apache 工作正常。
安装 LAMP 的机器也是我的桌面工作站。
所以我想从本地主机本身和局域网内的另一台机器访问 VirtualHost。
我已经设置了我的第一个虚拟主机,devone.loc
我已经将名称插入到我的主机文件中。
一切正常且可访问。
它也可以在我局域网中的任何机器上访问,我已经在我的 DD-WRT 路由器的 DNSmasq 中设置了它。
但是,当我禁用网络连接时,
无法再访问虚拟主机。但是默认的虚拟主机仍然可以在没有网络的情况下访问。
这里似乎有什么问题?我还需要访问本地主机中的虚拟主机,因为它也是我的桌面工作站。
我在下面附上了我的虚拟主机配置文件:
<VirtualHost *:80>
DocumentRoot /var/www2
ServerName devone.loc
ServerAlias www.devone.loc
<Directory /var/www2>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
当您是虚拟主机用户时,您可以轻松重现我的问题。
禁用所有网络,并使用 firefox(在我的情况下,FF v23)浏览您的
本地开发站点,它会抛出服务器未找到错误。
在我的本地主机的虚拟主机中离线浏览我的网站对我来说非常重要,
我用它来演示或为客户进行项目演示。
附加信息
我忘了说我的机器上也安装了 Webmin。
更新
我已经在另一台使用 LinuxMint 15 的 linux 机器上设置了另一个 Web 服务器,服务器是 XAMPP 1.8.2-1,最终结果是一样的。
我尝试在我的网络被禁用时设置 wordpress 但它抛出服务器未找到错误或当目录为空时它抛出访问禁止。
当我检查或勾选firefox的离线工作菜单时,我可以访问wordpress安装菜单,但只有索引部分,单击下一步不再可访问。
我已经完成了几种指令组合,但我仍然无法让它工作。
所以,主要问题是...
当所有网络都被禁用时,我的 VirtualHost 无法访问/访问。只有在启用网络时才能访问/访问。
更新 …
我试图--resolve在执行 HTTP 请求时使用 curl 的选项连接到指定的 IP 地址,但 curl 不断恢复到我的本地 DNS 缓存/解析器检索到的 IP 地址。
命令:
curl -s -S -I -H "Host: example.com" --resolve example.com:80:1.1.1.1 --verbose http://example.com/
Run Code Online (Sandbox Code Playgroud)
(whereexample.com替换为我的域名,1.1.1.1替换为想要的目的IP地址)
结果:
* Added example.com:80:1.1.1.1 to DNS cache
* Hostname was NOT found in DNS cache
* Trying 2.2.2.2...
* Connected to example.com (2.2.2.2) port 80 (#0)
> HEAD / HTTP/1.1
> User-Agent: curl/7.35.0
> Accept: */*
> Host: example.com
Run Code Online (Sandbox Code Playgroud)
(where2.2.2.2被缓存在我的本地 DNS 解析器中的 IP 地址替换为我的域名)
因此,看起来 curl …
自从我将笔记本电脑升级到 32 位 Ubuntu 11.10 以来,我添加到 /etc/hosts 的家庭服务器条目在启动时一直消失。每次启动并想要访问我的服务器(大多数时候)时,我都必须编辑主机文件,而我真的不想这样做。知道是什么原因造成的吗?这是我编辑的 /etc/hosts:
127.0.0.1 localhost
127.0.1.1 galileo
192.168.3.10 myserver
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Run Code Online (Sandbox Code Playgroud) 我已升级到 Ubuntu 12.10 并在 中进行了输入/etc/hosts,但不是查看hosts文件,而是首先查询我配置的 DNS 服务器。
如何让 Ubuntu 先查询/etc/hosts文件?
谢谢。