场景介绍
软件 `VM虚拟机`、`PHP开发环境`、`nginx webserver`、`samba`、`windows`、`IDEA`软件、`Centos 7.4`、`xdebug`
场景: 公司项目一个主项目 A、一个连接数据库的API项目 B,全是用 TP3.2.3 写的
问题:
本地开发时使用samba将两个项目映射到windows环境的网盘中。配置hosts虚拟域名
A项目中直接使用B项目中的数据,我无法调试B项目的代码
解决思路
第一种方法
使用VM提供的端口转发,当A项目调用B项目代码时 端口转发,将xdebug的调试数据转发到 windows IP上
没有问题,也实现了,但是当我用虚拟机联网时发现,虚拟机连接不上网络。这个方法废弃了。
第二种 防火墙Firewall
1.查看是否启动防火墙 `systemctl status firewalld`
2.如果没有启动启动防火墙 `systemctl start firewalld`
3.启用IP伪装 `firewall-cmd --add-masquerade --permanent`
4.启用端口转发 `firewall-cmd --add-forward-port=port=9001:proto=tcp:toaddr=192.168.137.1:toport=9001 --permanent`
5.生效 `firewall-cmd --reload`
我在windows环境上测试 telnet 192.168.137.28 9001
没有问题
但是我使用虚拟机连接自己时 telnet 127.0.0.1 9001
失败了
所以这个方法也废弃了
第三种方法 使用软件Rinetd
# 下载安装
wget http://www.rinetd.com/download/rinetd.tar.gz
tar xf rinetd.tar.gz
cd rinetd
make && make install
# 编辑配置文件
vim /etc/rinetd.conf
# 插入内容
'0.0.0.0 9001 192.168.137.1 9001'
# 生效
rinetd -c /etc/rinetd.conf
# 结束
这个方法没有问题了,本地监听后 转发至 windows 使用也没有问题。搞定。
评论已关闭