апачский vhost, не работающий последовательно

Интересная проблема... Никогда замечаемый bind используйте 100% ЦП, но быстрый поиск оказался очень интересной страницей, которая может помочь Вам решить проблему... Сообщите мне, как это складывается. Мне интересно знать результат.

0
задан 26 November 2011 в 00:57
3 ответа

Короче говоря, это версия netcat, которую вы используете.

Я протестировал командную строку на своих машинах следующим образом:

Mac OS X Lion:

yvaine:sqlite user$ echo -e "GET /" | nc 88.191.133.41 80
XX.XX.XX.168

FreeBSD:

[root@freebsd82 /usr/ports]# echo -e "GET /" | nc 88.191.133.41 80
XX.XX.XX.168

CentOS:

[root@kvm0001 ~]# echo -e "GET /" | nc 88.191.133.41 80
XX.XX.XX.168

Debian (версия 6)

root@debian:~# echo -e "GET /" | nc 88.191.133.41 80
XX.XX.XX.168

Только когда я добрался до Ubuntu «lucid» (который вы, по-видимому, используете), я получил следующее:

root@ubuntu:~# echo -e "GET /" | nc 88.191.133.41 80
root@ubuntu:~# 

Похоже, что Ubuntu по умолчанию nc.openbsd, а не nc.traditional (который в Debian установлен по умолчанию). Как только я использовал традиционную версию, я получил желаемый результат:

root@ubuntu:~# echo -e "GET /" | nc.traditional 88.191.133.41 80
XX.XX.XX.168

Что любопытно, на обеих ваших клиентских машинах есть nc.openbsd, но они различаются по поведению. Конечно, может случиться так, что у одного из них либо другая версия nc.openbsd, либо другая версия Ubuntu вообще. В любом случае вы можете синхронизировать свои версии nc.openbsd или переключиться на nc.traditional.

2
ответ дан 4 December 2019 в 12:49

Установите время ожидания и попробуйте еще раз:

$ echo "GET /" | nc -w 3 88.191.124.41 80
0
ответ дан 4 December 2019 в 12:49

У меня работает :)

michael@challenger:~$ echo -e "GET /\n" | nc 88.191.124.41 80
<html><body><h1>It works!</h1>
<p>This is the default web page for this server.</p>
<p>The web server software is running but no content has been added, yet.</p>
</body></html>

Если вы пытаетесь поразить виртуальный хост, вы делаете это неправильно. Вам необходимо отправить заголовок Host :, чтобы идентифицировать виртуальный хост, который вы хотите использовать.

Лучшим способом использования вашей службы «какой у меня IP» будет curl. Послушайте, я вижу ту же проблему на своем конце, когда я делаю то, что вы делаете:

michael@challenger:~$ echo -e "GET /" | nc ip.mydomain.ca 80
michael@challenger:~$ curl ip.mydomain.ca
192.168.0.135


ИСПРАВИТЬ ВАШИ VHOSTS !!!
michael@challenger:~$ curl -v 88.191.124.41
* About to connect() to 88.191.124.41 port 80 (#0)
*   Trying 88.191.124.41... connected
* Connected to 88.191.124.41 (88.191.124.41) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.21.3 (x86_64-pc-linux-gnu) libcurl/7.21.3 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.18
> Host: 88.191.124.41
> Accept: */*
> 
< HTTP/1.1 200 OK
< Date: Fri, 25 Nov 2011 22:11:31 GMT
< Server: Apache/2.2.14 (Ubuntu)
< Last-Modified: Wed, 25 Aug 2010 08:11:38 GMT
< ETag: "840d09-b1-48ea16e57f5a6"
< Accept-Ranges: bytes
< Content-Length: 177
< Vary: Accept-Encoding
< Content-Type: text/html
< X-Pad: avoid browser bug
< 
<html><body><h1>It works!</h1>
<p>This is the default web page for this server.</p>
<p>The web server software is running but no content has been added, yet.</p>
</body></html>
* Connection #0 to host 88.191.124.41 left intact
* Closing connection #0
1
ответ дан 4 December 2019 в 12:49

Теги

Похожие вопросы