我在 VirtualBox 上有两个 CentOS 虚拟机。其中一个假设为 CentOS-1 ,其中包含我的 Web 应用程序代码。第二个是 CentOS2。
我在这两台服务器之间有两个网络连接:桥接和仅主机。
CentOS-1:桥接连接的 IP 为:192.168.0.137
仅主机连接的 IP 为:192.168.1.137CentOS-2:对于桥接连接,ip 为:192.168.0.101
对于仅主机连接,ip 为:192.168.1.101
当我尝试像这样 ssh 时,在我的 php 网页中:
exec('ssh -p 22 [email protected] 2>&1 ',$output);
它正在工作,但是当我尝试 ssh 到仅主机网络 ip 时:
exec('ssh -p 22 [email protected] 2>&1 ',$output);
我得到了这个作为输出:
ssh: connect to host 192.168.1.101 port 22: No route to host
我尝试重新生成 192.168.0.137 的公钥并将其复制到 192.168.0.101,但没有帮助。我还尝试授予 apache 用户权限:
在 CentOS-2 上:sudo -u apache ssh[电子邮件保护]“密码”
sudo -u apache ssh[电子邮件保护]“密码”
在 CentOS-1 上:
sudo -u apache ssh [email protected] "pwd"
sudo -u apache ssh [email protected] "pwd"
这两种方法都不起作用。我是不是漏掉了什么?
ifconfig -a 的输出:
$ ifconfig -a
eth0 Link encap:Ethernet HWaddr 08:00:27:0B:56:0E
inet addr:192.168.0.101 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe0b:560e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5652 errors:0 dropped:0 overruns:0 frame:0
TX packets:4886 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:833395 (813.8 KiB) TX bytes:769122 (751.0 KiB)
eth1 Link encap:Ethernet HWaddr 08:00:27:FA:C6:32
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:6315 errors:0 dropped:0 overruns:0 frame:0
TX packets:6315 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:878894 (858.2 KiB) TX bytes:878894 (858.2 KiB)
和路线输出:
$ sudo ifconfig eth1 inet 192.168.1.101 broadcast 192.168.1.255 netmask 255.255.255.0 up
[sudo] password for safaa:
[safaa@AMeS101 ~]$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth1
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
link-local * 255.255.0.0 U 1002 0 0 eth0
default mbox.kds.local 0.0.0.0 UG 0 0 0 eth0
提前致谢 。
答案1
您需要做一些事情。
假设从一台机器 ping 另一台机器导致相同的错误,请尝试运行此命令。设置路线
route
您很可能看不到任何规则。假设您已在正确的文件中设置了 IP 地址centos 网络信息
/etc/sysconfig/network
一旦网络和路由都设置好了,你们就可以互相交谈了。要测试是否有人没有发回数据,tcpdump 是你的好帮手。Tcpdump 帮助
答案2
答案如下:
在 CentOS1 上:
sudo ifconfig eth1 192.168.1.191 netmask 255.255.255.0 up
sudo touch /etc/sysconfig/network-scripts/ifcfg-eth1
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1"
IPADDR=192.168.1.191
NETMASK=255.255.255.0
NETWORK=192.168.1.0
BROADCAST=192.168.1.255
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
sudo ifup eth1
在CentOS1谁 ssh 到这个服务器:
sudo -u apache ssh [email protected]"pwd"
然后 apache 可以 ssh 到 192.168.1.191 并且你可以做任何你想做的事情:)