4,436
社区成员
发帖
与我相关
我的任务
分享
iptables -t mangle -F
iptables -t mangle -A PREROUTING -p tcp --dport 6666 -j MARK --set-mark 100
iptables -t mangle -A PREROUTING -p tcp --dport 6666 -j CONNMARK --set-mark 100
iptables -t mangle -A PREROUTING -p tcp --dport 6666 -m mark --mark 100 -j CONNMARK --save-mark
iptables -t mangle -A PREROUTING -p tcp --dport 6666 -m mark --mark 100 -j CONNMARK --restore-mark
iptables -t mangle -A PREROUTING -p tcp --dport 6666 -m mark --mark 100 -j TTL --ttl-set 33
iptables -t mangle -A INPUT -m ttl --ttl 33 -m state --state NEW -j ACCEPT
iptables -t mangle -A INPUT -m ttl --ttl 33 -m state --state ESTABLISHED,RELATED -j ACCEPT
void get_mark(int connfd, const char *info) {
int mark = 1000;
socklen_t marklen = 32;
//setsockopt(connfd, SOL_SOCKET, SO_MARK, &mark, marklen);
mark = 888;
int n = getsockopt(connfd, SOL_SOCKET, SO_MARK, &mark, &marklen);
if (n) {
printf(" get mark failed!\n");
} else {
printf(" %s fd:%d MARK:%d\n", info, connfd, mark);
}
}
void get_ttl(int connfd, const char *info) {
int ttl = 0;
socklen_t ttllen = 32;
int n = getsockopt(connfd, IPPROTO_IP, IP_TTL, &ttl, &ttllen);
if (n) {
printf(" get ttl failed!\n");
} else {
printf(" %s fd:%d TTL:%d\n", info, connfd, ttl);
}
}
accept fd:4 MARK:0
accept fd:4 TTL:64
recv fd:4 MARK:0
recv fd:4 TTL:64