Linux端口转发

场景介绍

软件 `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 使用也没有问题。搞定。

阿杰博客
请先登录后发表评论
  • latest comments
  • 总共0条评论