【fork源码简单剖析】【查看xls文件源码】【雪花绘制js源码】DHCP源码编译
1.ArchLinux 系统的源码软路由配置
2.android 4.0 系统设置dhcp获取ip增加option60 选项
ArchLinux 系统的软路由配置
本文介绍在ArchLinux系统下进行软路由配置的步骤,包括网卡配置、编译拨号上网、源码DHCP服务器配置、编译SmartDNS服务器配置、源码防火墙iptables配置、编译fork源码简单剖析Shadowsocks透明代理设置、源码IPV6地址获取与前缀委派等关键环节。编译
首先,源码进行网卡配置。编译在/etc/systemd/network目录下创建-wan.network和-lan.network文件,源码分别用于配置WAN口和LAN口。编译
其次,源码拨号上网。编译使用ppp进行拨号,源码创建/etc/ppp/peers/下的文件进行拨号配置,并实现开机启动。
接着,配置DHCP服务器。编辑/etc/dhcpd.conf文件设置DHCP服务,并实现服务的查看xls文件源码开机自启动。
然后,构建SmartDNS服务器。安装并配置anti-ad-smartdns、gfwlist以及local-smartdns.conf文件,实现流量控制,服务开机自启动。
之后,防火墙iptables配置。通过流程图展示流量数据流,确保各环节正确配置,雪花绘制js源码可在开机自启动脚本中集成相应脚本。
紧接着,Shadowsocks透明代理。使用rust版的ss进行代理处理,确保开启local-redir和stream-cipher特性,启动命令需自行编译配置文件。
随后,获取IPV6地址。使用wide-dhcpv6从上游获取IPV6地址,配置文件为/etc/wide-dhcpv6/dhcp6c.conf,光子解锁助手源码并实现开机自启动。为避免未拨号成功即获取IPV6地址导致服务失败,可加入开机前等待秒的指令。
最后,IPV6前缀委派。使用radvd进行IPV6地址前缀委派,配置文件为/etc/radvd.conf,并实现服务的开机自启动。
android 4.0 系统设置dhcp获取ip增加option 选项
你是否正在寻找关于option的内容?让我把最内涵的东西奉献给你:
搜索了很多资料,介绍都是卡片风格导航源码修改/system/core/libnetutils下面的代码
dhcp 获取ip过程;
1、先由客户端发送discover消息,这个消息属于广播,网内的dhcp都会收到这个消息,一般在这个消息内增加option选项
2、服务器如果能够提供给客户端一个ip地址,则会给客户端发送一个offer消息,里面包含提供的ip消息
3、客户端一般按照谁最先给提供ip,就给那个服务器做出请求,如果没有option的限制的话。如果增加了,则只接受指定服务器提供的ip,并给这个服务器发送request消息
4、服务器给客户端发送ack确认消息,或者nak消息
抓包分析,就这几个消息。
按照这个说明,应该在构建discover消息里面加入option选项。
在dhcp_msg.cinit_dhcp_discover_msg函数里面,增加了OPT_CLASS_ID即选项
编译这个文件夹,将生成的libnetutils.so push到/system/lib下,重启机顶盒抓包,没在discover里面发现option选项,郁闷吧,改了n久,加了很多打印,始终就是没有。
继续查资料。
有人说在dhcp_do_request函数里面(dhcp_utils.c)修改damon_cmd,这个原理实在是不明白。在这个文件加了LOGD打印,果然出来了,打印damon_cmd如下:
daemon_cmd dhcpcd_eth0: -h android-ce2febaa eth0
看来dhcp是走了这个函数了。兴奋中,离成功说明不远了啊。哈哈
snprintf(daemon_cmd, sizeof(daemon_cmd), "%s_%s:-i %s -h %s %s" DAEMON_NAME,daemon_suffix,DHCP_option,prop_value, interface);
DHCP_OPTION是指定的option的字符串
加入了-i 选项就是option了,打印如下
daemon_cmd dhcpcd_eth0:-i STB -h android-ce2febaa eth0
编译,重新将so库push到机顶盒上,抓包,发现ok了。