192.168.42.x
地址。我真的需要更改它,因为它与我们的工作子网之一冲突-这可能吗?#1 楼
不幸的是,即使在CyanogenMod中,也无法更改内置网络共享支持的IP地址范围。 Wi-Fi热点IP被硬编码在android.net.wifi.WifiStateMachine.startTethering();中。 USB共享IP硬编码在com.android.server.connectivity.Tethering中。但是,如果您的手机已扎根,您可以尝试使用第三方应用进行共享,这些应用可以更改IP地址范围。例如,当三星Galaxy W的CyanogenMod alpha中内置的USB绑定中断时,我使用了适用于root用户的有线绑定。对于Wi-Fi网络共享,您可以尝试使用同一作者的“无线Root用户”应用程序,该应用程序还可以更改IP地址范围。
由于Google Code已关闭,因此上述链接不再工作。有些人将这些存储库中的源代码导出到GitHub:
https://github.com/luftreich/android-wired-tether
https://github.com/mmorciegov/android -wifi-tether
但是,没有进一步的开发活动,并且这些应用可能不再能在最新的Android版本上运行。
如果有人要尝试使用那些过时的应用,我有能够在Google代码存档中找到一些APK文件:
wired_tether_1_4.apk
wifi_tether_v3_4-experimental1.apk
评论
+1的信息。我的设备已扎根,但“根用户无线束缚”应用程序无法在我的手机上运行。应该有一些方法可以更改植根电话C'Mon Man!上的IP范围,毕竟Android是开放式操作系统。
–VVK
13年4月4日在5:18
@VVK有办法。只需重新编译源即可。
– Syakur Rahman
16年11月29日在10:51
您提到的应用似乎不再存在。您知道发布者的名字,可以在网上找到任何新版本吗?我找到了一些其他人,但没有一个是免费的...
– pgr
17-10-27在17:53
@pgr找到了一些有效的链接,但没有更新的版本。
–谢尔盖·弗拉索夫(Sergey Vlasov)
17-10-30在7:17
在Android 11上,每次禁用并启用热点后,热点的网关IP似乎都在更改。因此,对于最新的Android,此答案已过时。现在的问题是,最终是否有解决方案?
–马丁·布劳恩
20-10-10在0:28
#2 楼
Android内置的wifi网络共享设计为使用192.168.43.1/24作为服务器,netd
使用dnsmasq
处理网络共享。第一个DNS范围是192.168.42.1-254
,第二个DNS范围是192.168.43.1-254
。Netd很难更改。它需要一个套接字才能与其通信,并且该套接字是在android开始绑定时使用的。但是遍历
Tethering.java
(我使用的是Froyo)的源文件,我们看到:// usb client will be provided 192.168.42.129
private static final String USB_NEAR_IFACE_ADDR = "192.168.42.129";
private static final String USB_NETMASK = "255.255.255.0";
// FYI - the default wifi is 192.168.43.1 and 255.255.255.0
private String[] mDhcpRange;
private static final String DHCP_DEFAULT_RANGE1_START = "192.168.42.2";
private static final String DHCP_DEFAULT_RANGE1_STOP = "192.168.42.254";
private static final String DHCP_DEFAULT_RANGE2_START = "192.168.43.2";
private static final String DHCP_DEFAULT_RANGE2_STOP = "192.168.43.254";
随后我们看到使用的那些范围,例如BACKUPS。 dhcp范围的主要来源不是硬编码的42和43,而是从内部字符串数组array.config_tether_dhcp_range读取的。但目前为空。
您可以编辑android框架。在我的手机上是
/system/framework/framework-res.apk
。在线上有大量用于编辑framework-res.apk的教程,从简单的字符串到完整的主题。为您的手机和Android版本找到一个。要更改的主要内容是
/res/values/arrays.xml
查找
<array name="config_tether_dhcp_range" />
更改为:
mDhcpRange = context.getResources().getStringArray(
com.android.internal.R.array.config_tether_dhcp_range);
if ((mDhcpRange.length == 0) || (mDhcpRange.length % 2 ==1)) {
mDhcpRange = new String[4];
mDhcpRange[0] = DHCP_DEFAULT_RANGE1_START;
mDhcpRange[1] = DHCP_DEFAULT_RANGE1_STOP;
mDhcpRange[2] = DHCP_DEFAULT_RANGE2_START;
mDhcpRange[3] = DHCP_DEFAULT_RANGE2_STOP;
}
根据需要进行编译/压缩/签名(按照教程操作),然后重新安装。
如果要多个范围,只需复制一遍又两遍。您始终需要为每个范围提供起点和终点。尝试将其保持在相同的/ 24中,即
192.168.50.
5和192.168.50.99
或其他值。您可以确认它与busybox ps | grep dnsmasq
一起使用,或者如果您没有忙碌箱ps dnsmasq
,请在cat /proc/pid/cmdline
中使用pid。您应该得到(或类似的结果):/ system / bin / dnsmasq --no-daemon --no-poll -no-resolv --dhcp-range = 192.168.50.5, 192.168.50.99,1h
FWIW,我的WIFI绑定使用默认的
dnsmasq
范围,但为我的计算机分配了192.168.43.147/24
和网关192.168.43.1/24
。不确定为什么您的默认地址为42.x
。评论
42用于USBNET 43用于WiFi
– Zibri
18年7月6日在15:19
很高兴找到您在哪里看到的?
–cde
18年7月6日在17:35
因为如果您通过usb进行连接,则得到42。如果您通过wifi进行连接,则得到43。
– Zibri
18年7月7日在18:57
#3 楼
我知道这是一篇旧文章,但以为我会提供更新。似乎有些制造商和Android版本现在确实允许在使用WiFi热点功能时通过UI更改DHCP服务器的IP子网范围。在运行Android 6.0的HTC One M8上可以找到它。 YMMV。从“移动热点”屏幕中,单击3点图标(更多),转到“高级”,然后单击“ LAN设置”。
在“本地IP”下,将IP地址更改为所需的IP 。在“本地DHCP”下,更改起始IP以匹配您IP地址的子网。
Trent
评论
您知道新的HTC手机是否也有此选项吗?
– Arya
18年8月22日在2:05
#4 楼
默认的DHCP IP地址范围是硬编码的,因此,如果不使用修改后的源代码重建ROM,就无法更改它。或使用一点技巧。使用自定义外壳程序脚本替换/system/bin/dnsmasq
(适用于Android 9的DHCP / DNS服务器),该脚本将在执行实际的dnsmasq
二进制文件之前用新的子网掩码替换旧的子网。有关详细步骤,请参阅如何更改默认的DHCP IP。地址范围?评论
Android 10现在使用什么?
– sudo
20/11/23在16:42
@sudo DHCP / DNS服务器的Java实现。但是至少有些ROM仍使用dnsmasq。
–艾尔凡·拉蒂夫(Irfan Latif)
20-11-23在18:38
评论
我的手机已经扎根。如果需要,我不介意更改系统文件。就像上面的一些好答案中对细微差别的回应一样,在我的实践中,192.168.43.0 / 24范围是由Android /供应商默认分配给WiFi绑定,而192.168.42.0/24则是针对USB绑定。
如何更改默认的DHCP IP地址范围?