LinuxÏÂͨ¹ýiptablesץȡtcpÁ¬½Ó
1.1.1 iptablesÔÀí
1.1.2 ÒÔ±¾µØΪԴµÄ°ü·¾¶
Step
Table
Chain
Comment
1
±¾µØ³ÌÐò£¨±ÈÈ磬·þÎñ³ÌÐò»ò¿Í»§³ÌÐò£©
2
·ÓÉÅжϣ¬ÒªÊ¹ÓÃÔ´µØÖ·£¬Íâ³ö½Ó¿Ú£¬»¹ÓÐÆäËûһЩÐÅÏ¢¡£
3
mangle
OUTPUT
ÔÚÕâ¶ù¿ÉÒÔmangle°ü¡£½¨Òé²»ÒªÔÚÕâ¶ù×ö¹ýÂË£¬¿ÉÄÜÓи±×÷ÓÃŶ¡£
4
nat
OUTPUT
Õâ¸öÁ´¶Ô´Ó·À»ðǽ±¾Éí·¢³öµÄ°ü½øÐÐDNAT²Ù×÷¡£
5
filter
OUTPUT
¶Ô±¾µØ·¢³öµÄ°ü¹ýÂË¡£
6
mangle
POSTROUTING
ÕâÌõÁ´Ö÷ÒªÔÚ°üDNATÖ®ºó(ÒëÕß×¢£º×÷Õß°ÑÕâÒ»´ÎDNAT³Æ×÷ʵ¼ÊµÄ·ÓÉ£¬ËäÈ»ÔÚÇ°ÃæÓÐÒ»´Î·ÓÉ¡£¶ÔÓÚ±¾µØµÄ°ü£¬Ò»µ©Ëü±»Éú³É£¬¾Í±ØÐë¾¹ý·ÓÉ´úÂëµÄ´¦Àí£¬µ«Õâ¸ö°ü¾ßÌåµ½ÄĶùÈ¥£¬ÒªÓÉNAT´úÂë´¦ÀíÖ®ºó²ÅÄÜÈ·¶¨¡£ËùÒÔ°ÑÕâ³Æ×÷ʵ¼ÊµÄ·ÓÉ¡£)£¬À뿪±¾µØ֮ǰ£¬¶Ô°ü mangle¡£ÓÐÁ½ÖÖ°ü»á¾¹ýÕâÀ·À»ðǽËùÔÚ»ú×Ó±¾Éí²úÉúµÄ°ü£¬»¹Óб»×ª·¢µÄ°ü¡£
7
nat
POSTROUTING
ÔÚÕâÀï×öSNAT¡£µ«²»ÒªÔÚÕâÀï×ö¹ýÂË£¬ÒòΪÓи±×÷Ó㬶øÇÒÓÐЩ°üÊÇ»áÁï¹ýÈ¥µÄ£¬¼´Ê¹ÄãÓÃÁËDROP²ßÂÔ¡£
8
À뿪½Ó¿Ú(±ÈÈ磺 eth0)
9
ÔÚÏß·ÉÏ´«Êä(±ÈÈ磬Internet)
1.1.3 ¹æÔòÌí¼Ó
´ÓÉÏÃæ¿ÉÒÔ¿´³öÖ»ÐèÒªÔÚOUTPUTÁ´Ôö¼ÓÈçϵÄÀàËƹæÔò¼´¿ÉʵÏÖ½«Ìض¨ip + portµÄtcpÁ¬½Ó½Ù³Öµ½±¾µØij¸ö¶Ë¿Ú¼´¿É
Ä¿µÄip: 200.200.30.228 ¶Ë¿Ú443
±¾µØip: 200.200.30.122, ¶Ë¿Ú28888
iptables -t nat -A OUTPUT -p tcp -d 200.200.30.228 -j DNAT --dport 443 --to-destination 200.200.30.122:28888
²âÊÔOK
1.1.4 Ïà¹Ø´¦Àí
(1) ÒÀÀµÓÚiptables¹¤¾ß
(2) Ó¦ÓòãÈçºÎ»ñÈ¡¶ÔÓ¦¹Øϵ£¿
ÆäʵÕâ¸öʱºò¿ÉÒÔͨ¹ýnetstatÃüÁî·¢ÏÖÈçÏÂÆæ¹ÖµÄÏÖÏó£º
ͬʱºÍ200.200.30.228µÄ443¶Ë¿ÚºÍ±¾µØ28888¶Ë¿Ú½¨Á¢ÁËÁ¬½Ó£¬
ËùÒÔÕâÀïÒ²¿ÉÒÔ»ñÈ¡µ½ÔÀ´ÒªÁ¬½ÓµÄ×ÊÔ´ºÍ¶Ë¿Ú
Ïà¹ØÎĵµ£º
=== 6 ÌåϵMakefileÎļþ
ÔÚ¿ªÊ¼½øÈë¸÷¸öĿ¼±àÒë֮ǰ£¬¶¥²ãMakefileÎļþÉèÖñàÒë»·¾³ºÍ×öЩ׼±¸¹¤×÷¡£¶¥²ãMakefileÎļþ°üº¬Í¨Óò¿·Ö£¬arch/$(ARCH) /Makefile°üº¬¸ÃÌåϵ¼Ü¹¹ËùÐèµÄÉèÖá£Òò´Ëarch/$(ARCH)/Makefile»áÉèÖÃһЩ±äÁ¿ºÍÉÙÁ¿µÄÄ¿±ê¡£
µ±±àÒëʱ½«°´ÕÕÒÔÏ´ó¸Å²½ÖèÖ´ÐУº
1) ÅäÖÃÄÚºË => ²úÉú .configÎļþ
......
ÉèÖÃdsnºóËäÈ»ÐéÄâ»ú¿ÉÒÔÉÏÍøÁË£¬µ«ÊÇÓû§Ãû±ä³ÉÁËbogon£¬¶ø²»ÊÇ֮ǰµÄlocalhost£¬È¥µôDNSºóÖØÆôÐéÄâ»ú¾ÍÓÖ±ä³ÉÁËlocalhost
È»ºó¾Í¿ÉÒÔmount±¾»úÁË
»¹ÓÐÒ»ÖÖ·½·¨£º
hostname ÏÔʾµ±Ç°Ö÷»úÃû
hostname localhost ÉèÖõ±Ç°Ö÷»úÃûΪlocalhost
¹À¼ÆÒ²¿ÉÒÔ½â¾öÉÏÊö²»ÄÜmountµÄÎÊÌâ¡£ ......
#include <iostream>
#include <pwd.h>
#include <sys/types.h>
#include <stddef.h>
#include <string>
#include <list>
using namespace std;
void GetUser(list<string>& lsUser);
int main()
{
list<string> lsUser;
GetUser(lsUser);
cout <&l ......
ÔÚLinux ÖУ¬¶¯Ì¬¿âµÄËÑË÷·¾¶³ýÁËĬÈϵÄËÑË÷·¾¶Í⣬»¹¿Éͨ¹ýÈýÖÖ·½·¨À´Ö¸¶¨£º·½·¨Ò»£ºÔÚÅäÖÃÎļþ/etc/ld.so.confÖÐÖ¸¶¨¶¯Ì¬¿âËÑË÷·¾¶£»·½·¨¶þ£ºÍ¨¹ý»·¾³±äÁ¿LD_LIBRARY_PATHÖ¸¶¨¶¯Ì¬¿âËÑË÷·¾¶£»·½·¨Èý£ºÔÚ±àÒëÄ¿±ê´úÂëʱָ¶¨¸Ã³ÌÐòµÄ¶¯Ì¬¿âËÑË÷·¾¶¡£
ÖÚËùÖÜÖª£¬Linux¶¯Ì¬¿âµÄĬÈÏËÑË÷·¾¶ÊÇ/libºÍ/usr/lib¡£¶¯Ì¬¿â±» ......
ËùÓÐÏ̶߳¼ÓÐÒ»¸öÏ̺߳ţ¬Ò²¾ÍÊÇ
Thread ID
¡£ÆäÀàÐÍΪ
pthread_t
¡£Í¨¹ýµ÷ÓÃ
pthread_self()
º¯Êý¿ÉÒÔ»ñµÃ×ÔÉíµÄÏ̺߳š£
ÏÂÃæ˵һÏÂÈçºÎ´´½¨Ò»¸öÏ̡߳£
ͨ¹ý´´½¨Ị̈߳¬Ï߳̽«»áÖ´ÐÐÒ»¸öÏ̺߳¯Êý£¬¸ÃÏ̸߳ñʽ±ØÐë°´ÕÕÏÂÃæÀ´ÉùÃ÷£º
void * Thread_Function(void *)
´´½¨Ï ......