回答
您可以用iptables:
iptables -A FORWARD -p tcp -i eth0 -s localhost -d x.x.x.x --dport 3306 -j ACCEPT
其中X.X.X.X是MySQL服务器的IP地址,并为eth0是您使用的接口。
看起来好像你在问你是否在你想要查询本地主机的Linux机器上,并将该查询转发给SQL Server。在这种情况下,上面的答案是部分正确的,并且将允许数据包被转发,但实际上并不执行前向/重定向。你也会说“SQL Server”,我认为它是指MS SQL Server。这种情况下的默认端口被列为1433.您实际上需要(2)规则:
# iptables -t nat -A PREROUTING -p tcp -i lo -d localhost --dport 1433 -j DNAT --to-destination x.x.x.x # where x.x.x.x is the SQL Server IP address
# iptables -A FORWARD -i lo -p tcp --dport -j ACCEPT # only if your default FORWARD policy is DROP. Otherwise you just need the prerouting rule.
是的,这就是我想要的。谢谢!但我使用firewalld。我试过这个命令firewall-cmd --zone = external --add-forward-port = port = 1433:proto = tcp:toaddr = 192.168.1.110。它不起作用。 sql客户端总是说连接被拒绝。 – Sergey
很可能是因为'lo'界面不倾向于属于任何firewalld区域。它看起来像你的代码可能是基于互联网的例子。你的默认区域是'external'('firewall-cmd --get-default-zone')?如果不是,它将不匹配接口'lo'。如果在上述命令中有不同的默认区域(例如public),则使用该区域而不是“external”。无论如何, – LJKims
无法正常工作。不明白什么是错的。 – Sergey
- 1. 枢转的SQL Server 2008发行
- 2. 转换的SQL Server触发到MySQL
- 3. LINUX PHP5 mssql_connect()到SQL Server 2005
- 4. SQL Server转换
- 5. SQL Server并发
- 6. 从SQL Server 2008 Express转到SQL Server 2012
- 7. SQL Server反转CONTAINS
- 8. SQL Server列转换
- 9. C++从Linux到SQL Server的访问
- 10. Linux上的SQL Server 2005扩展
- 11. 来自Linux的CI和SQL Server
- 12. MS SQL Server的崩溃在Linux上
- 13. 访问SQL Server 2008 R2的Linux?
- 14. SQL Server的转换失败
- 15. 的SQL Server到MySQL转换
- 16. 转换列行的SQL Server
- 17. Sql Server的转换日期
- 18. SQL Server:触发器触发
- 19. Sql Server触发器
- 20. 分发SQL Server Express
- 21. SQL Server触发器
- 22. Sql Server触发器
- 23. SQL Server触发器
- 24. REGEXP_LIKE在SQL Server T-SQL中的转换
- 25. SQL Server中的sql与转换
- 26. 转换的SQL Server SQL查询到MySQL
- 27. SQL Server 2012的触发
- 28. 并发执行的SQL Server
- 29. 的SQL Server:功能触发
- 30. 触发父ID的SQL Server
谢谢!但我使用firewalld。我试过这个命令firewall-cmd --zone = external --add-forward-port = port = 1433:proto = tcp:toaddr = 192.168.1.110。它不起作用。 sql客户端总是说连接被拒绝 – Sergey