Tcpcopy???????????? 2
???????????? ???????[ 2014/6/16 14:45:56 ] ??????????????? Tcpcopy ???????
????Tcpcopy????????????????????Щ??????????????????????Tcpcopy????????????????????????????????????????????????????????????????????????????
????Tcpcopy???????????????????:????????intercept????????????????????????????????intercept???????????????offload?????????????????????????????????????????????????????
??????????
????Tcpcopy
???????????£???????????????????????????????raw socket input ????raw socket(???????)?????????????????????????????????????????????????????????????3????????????socket ????????????tcpcopy?????????Raw_socket????????????÷??????ο? http://blog.sina.com.cn/s/blog_9599e95101010w2g.html
?????????????int sock = socket(AF_INET??SOCK_RAW??IPPROTO_TCP)?? ????????????Э???? AF_INET ????TCP/IPЭ?顣????????????SOCKET?????????????????Э????????????????????Э???????tcp(?????????????Э??????)??????????IP???????????????????????IP???????(IP??????????Щ??????????????????)??Tcpcopy????Raw Socket????????????????????????????????????????????????????????????IP?????????н???????????????raw socket??????У????????????????????????socket?????????Tcpcopy???????????????????????????
???????????????ú???sock = socket(AF_INET?? SOCK_RAW??IPPROTO_RAW)??????????setsockopt(sock?? IPPROTO_IP?? IP_HDRINCL?? &n?? sizeof(n))??????IP??????????????????????д(??????????????????£?IPЭ?????????IP??????????)??Tcpcopy????????????????????IP?????????????IP????????£?tcp_header->dest = remote_port;
????ip_header->daddr = remote_ip;?????sendto?????????????????????
????send_len = sendto(sock??(char *)ip_header??tot_len??0??(struct sockaddr *)&toaddr??sizeof(toaddr));
????Intercept
???????????Intercept??????????????????????????????д???????????????????????ó????????????????????????????????????????Tcpcopy??????????????Iptable?????????????????????????
????modprobe ip_queue
????iptables -I OUTPUT -p tcp –sport 2080 -j QUEUE
????????iptable???????OUTPUT????2080???????????IP???????????QUEUE????QUEUE????ip_queue??????(http://bbs.chinaunix.net/thread-1941806-1-1.shtml).????????iptable????????????????modprobbe???????ip_queue??顣???????????????裬 ???????iptable??????????????IP Queue????????????
????Tcpcopy?????????Intercept?????????·??????Netlink socket??
????int sock = socket(AF_NETLINK??SOCK_RAW??NETLINK_FIREWALL);
????Netlink???????http://linux.chinaunix.net/techdoc/beginner/2008/11/12/1044982.shtml??
????NETLINK_FIREWALLЭ????????????????IPQM_MODE??IPQM_PACKET??IPQM_VERDICT.??????????IPQM_PACKET???????????????????????Inercept??Intercept???????????IPQM_VERDICT??????????????????t??????DROP??ACCEPT????Tcpcopy?????????????????????÷?????????????????Intercept???????Ip header?? Tcpcopy?????????????????????????ip?б????????????·??????????????÷????????????????IP??drop????????2080??????????????÷?????????????????????????????iptables?????????????????????????????????????????????÷?????
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11