无法从来宾虚拟机上的 tomcat 获取 http(nat 连接)
can't get http from tomcat on guest vm (nat connection)
我在客户机上安装了 运行 centos(使用 virtualbox,通过 nat 连接)。
这台机器上的 8080 端口上有 tomcat 运行。
<Connector port="8080" protocol="HTTP/1.1" address="0.0.0.0"
connectionTimeout="20000"
redirectPort="8443" />
有从主机到来宾的端口转发
主机 2222,来宾 22 (ssh)
主机 40001,访客 8080
我尝试从 http://localhost:8080 获取页面
如果我通过 ssh 从主机连接并执行 curl localhost:8080 我会得到一个 html 页面。
但是如果尝试通过浏览器获取http://localhost:40001,它会变成无限加载。
网络统计-an |在主机显示上找到“40001”
C:\Users\user>netstat -an |找到“40001”
TCP 0.0.0.0:40001 0.0.0.0:0 LISTENING
TCP 127.0.0.1:30279 127.0.0.1:40001 FIN_WAIT_2
TCP 127.0.0.1:40001 127.0.0.1:30279 CLOSE_WAIT
如果我尝试在主机上远程登录 (telnet localhost 40001),连接正常。
如果我尝试在来宾上获取 netstat,我会得到这个
[aegis@localhost ~]$ netstat -an | grep LISTEN | grep tcp
tcp 0 0 127.0.0.1:8005 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8009 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 ::1:25 :::* LISTEN
我不明白为什么主机的 telnet 可以正常工作,但我无法通过浏览器获取页面。你能帮我吗,我哪里配置有误?
起初,我因为工作而感到沮丧"telnet localhost 40001 from host machine"。
但是22端口和8080端口是有区别的。
默认开启22端口
8080端口没有。
如果你遇到这样的问题,你应该允许防火墙连接到 8080 端口。
例如,你可以执行这条语句:
iptables -I INPUT 1 -i eth0 -p tcp --dport 8080 -j ACCEPT
我在客户机上安装了 运行 centos(使用 virtualbox,通过 nat 连接)。 这台机器上的 8080 端口上有 tomcat 运行。
<Connector port="8080" protocol="HTTP/1.1" address="0.0.0.0"
connectionTimeout="20000"
redirectPort="8443" />
有从主机到来宾的端口转发
主机 2222,来宾 22 (ssh)
主机 40001,访客 8080
我尝试从 http://localhost:8080 获取页面 如果我通过 ssh 从主机连接并执行 curl localhost:8080 我会得到一个 html 页面。
但是如果尝试通过浏览器获取http://localhost:40001,它会变成无限加载。
网络统计-an |在主机显示上找到“40001”
C:\Users\user>netstat -an |找到“40001”
TCP 0.0.0.0:40001 0.0.0.0:0 LISTENING
TCP 127.0.0.1:30279 127.0.0.1:40001 FIN_WAIT_2
TCP 127.0.0.1:40001 127.0.0.1:30279 CLOSE_WAIT
如果我尝试在主机上远程登录 (telnet localhost 40001),连接正常。
如果我尝试在来宾上获取 netstat,我会得到这个
[aegis@localhost ~]$ netstat -an | grep LISTEN | grep tcp
tcp 0 0 127.0.0.1:8005 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8009 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 ::1:25 :::* LISTEN
我不明白为什么主机的 telnet 可以正常工作,但我无法通过浏览器获取页面。你能帮我吗,我哪里配置有误?
起初,我因为工作而感到沮丧"telnet localhost 40001 from host machine"。
但是22端口和8080端口是有区别的。
默认开启22端口
8080端口没有。
如果你遇到这样的问题,你应该允许防火墙连接到 8080 端口。
例如,你可以执行这条语句:
iptables -I INPUT 1 -i eth0 -p tcp --dport 8080 -j ACCEPT