Linux如何做到将外来数据包DNAT到Loopback
前面写了篇文章《使用iptables为何不能将外部进入的包NAT到127.0.0.1》,牵扯到了很多知识,最终的结论就是不能那么做。这个结论让人有些不舒服,说了半天就是阐述它为何做不到,如果我非要将包NAT到loopback呢。比如为了不将端口以及地址暴露给外部,我就是想让代理服务侦听127.0.0.1这个地址,有没有什么办法做到呢?
因为你用的是Linux,答案无疑是肯定的,所要做的无非就是把路由时候的限制条件给去掉。我们知道,在进和出两个方向,有两个路由查找逻辑,一个是2.很多符号没有导出来,因此必须使用其地址,还要强制转化一下。当然想办法使用导出的符号也不是不可的,然而却需要做更多的工作,比如链接特定的obj文件等,索性还是直接使用地址吧...
3.其实想用kprobe了,然而不知怎么回事总感觉那是Windows程序员的风格,再说又不是没有别的办法,不到万不得已,不用这种。(难道为了将二进制覆盖技术练得炉火纯青,哥必须把所有机器的汇编都掌握了吗?实际上,哥只会x86上的-以前搞Windows的时候学的,x86-64的都不怎么懂啊)