Я пытаюсь создать CI-сервер на виртуальной машине, используя CentOS 6 Minimalist Install и VirtualBox 4.1.4r74291 на хост-компьютере Windows 7.
Прежде чем вы спросите:
Вот некоторые выходные данные команды:
ifconfig -a eth1
eth1 Link encap:Ethernet HWaddr 08:00:27:2B:4E:3C
inet addr:192.168.1.104 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe2b:4e3c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:320629 errors:0 dropped:0 overruns:0 frame:0
TX packets:171826 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:445888239 (425.2 MiB) TX bytes:14540682 (13.8 MiB)
nmap localhost
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000080s latency).
Hostname localhost resolves to 2 IPs. Only scanned 127.0.0.1
Not shown: 994 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
8009/tcp open ajp13
8080/tcp open http-proxy
9418/tcp open git
Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds
iptables -vL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
315K 441M ACCEPT all -- any any anywhere anywhere state RELATED,ESTABLISHED
0 0 ACCEPT icmp -- any any anywhere anywhere
6010 281K ACCEPT all -- lo any anywhere anywhere
4 208 ACCEPT tcp -- any any anywhere anywhere state NEW tcp dpt:ssh
8676 668K REJECT all -- any any anywhere anywhere reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 REJECT all -- any any anywhere anywhere reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT 184K packets, 13M bytes)
pkts bytes target prot opt in out source destination
netstat -aln | grep 80
tcp 0 0 :::8009 :::* LISTEN
tcp 0 0 :::8080 :::* LISTEN
tcp 0 0 :::80 :::* LISTEN
tcp 0 0 ::ffff:127.0.0.1:8005 :::* LISTEN
unix 2 [ ACC ] STREAM LISTENING 8093 public/cleanup
unix 3 [ ] STREAM CONNECTED 8099
unix 3 [ ] STREAM CONNECTED 8098
unix 3 [ ] STREAM CONNECTED 8096
unix 3 [ ] STREAM CONNECTED 8095
unix 3 [ ] STREAM CONNECTED 8092
unix 3 [ ] STREAM CONNECTED 8091
unix 3 [ ] STREAM CONNECTED 8089
unix 3 [ ] STREAM CONNECTED 8088
unix 2 [ ] DGRAM 8054
unix 2 [ ] DGRAM 8013
И от хозяина:
telnet 192.168.1.104 80
Could not open connection to the host, on port 80: Connect failed
Итак, оба порта открыты, и похоже, что брандмауэр позволяет подключать эти порты извне (но, честно говоря, я только догадываюсь об этом. Я действительно не знаю, как читать вывод из iptables -L
.) Тем не менее, всякий раз, когда я пытаюсь зайти на 192.168.1.104:(80|8080) в Chrome с хоста, я получаю печально известное:
Oops! Google Chrome could not connect to 192.168.1.104
Это возможно, поскольку я делал это раньше с установкой Kubuntu (тем не менее, на .1.103), и я пытался перейти на виртуальную машину с меньшим объемом памяти и немного большей безопасностью.
Какие-либо предложения? Нужна дополнительная информация? Я сейчас весь в ушах.
РЕДАКТИРОВАТЬ:
После ответа Янне httpd теперь слушает 192.168.1.104:80
. Таким образом, я больше не могу рысь на локальном хосте и выполняю wget 127.0.0.1
дает мне ошибку отказа в соединении. Это уместно, потому что теперь я должен lynx/wget 192.168.1.104
чтобы получить результаты, которые я получал заранее с 127.0.0.1 (страница «Это работает!» из Apache и загрузка index.html, соответственно.) Еще одна подсказка, возможно?
Я не вижу в вашем iptable4s правила, которое разрешает соединение через порт 80 (кроме разрешения blanket на lo). Попробуйте открыть порт 80.
iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
или
iptables -I INPUT -i eth1 -p tcp -m tcp --dport 80 -j ACCEPT
если вы хотите ограничить доступ к соединениям на eth1.
Это дикий выстрел в темноте: я думаю, ваш Apache слушает 127.0.0.1
и нет 192.168.1.104
.
Если netstat -tlnp
возвращает, что Apache слушает 127.0.0.1:80
, то он вообще не будет отвечать на трафик eth1.
Видеть Listen
директива из вашего httpd.conf. Следует сказать 192.168.1.104:80
РЕДАКТИРОВАТЬ: Эй, должно быть, дело в iptables. Когда вы говорите «Я могу использовать git», вы имеете в виду, что используете git вместо ssh?
В настоящее время ваши правила INPUT iptables, похоже, разрешают новые подключения только к порту ssh, а не к порту 80. Попробуйте добавить это в свои правила iptables:
iptables -I INPUT 1 -i eth1 -p tcp -d 0/0 --dport 80 -j ACCEPT