mirror of
https://gitee.com/willfree/min-vpn-client_v2.git
synced 2026-10-04 19:42:00 +08:00
修改内网的tun配置流程
This commit is contained in:
1 parent
3990869a94
commit
aa66f72290
2 files changed
+21
-11
No files matched your search
@@ -95,6 +95,11 @@ public class SettingActivity extends MINVpnBaseActivity<SettingActivityPresenter
|
||||
etPort.setText(String.valueOf(MINVpnSettingAPI.INSTANCE.getMirPort()));
|
||||
etFirstRouterPrefix.setText(MINVpnSettingAPI.INSTANCE.getFirstRouterPrefix());
|
||||
etServicePrefix.setText(MINVpnSettingAPI.INSTANCE.getServicePrefix());
|
||||
// 外访
|
||||
etIpAddress_Extra.setText(MINVpnSettingAPI.INSTANCE.getExtranetMirIpAddress());
|
||||
etPort_Extra.setText(String.valueOf(MINVpnSettingAPI.INSTANCE.getExtranetMirPort()));
|
||||
etFirstRouterPrefix_Extra.setText(MINVpnSettingAPI.INSTANCE.getExtranetFirstRouterPrefix());
|
||||
etServicePrefix_Extra.setText(MINVpnSettingAPI.INSTANCE.getExtranetServicePrefix());
|
||||
etBlockChainIp.setText(MINVpnSettingAPI.INSTANCE.getBlockChainIpAddress());
|
||||
etVMSTCPPort.setText(String.valueOf(MINVpnSettingAPI.INSTANCE.getBcTcpPort()));
|
||||
etVMSSSLPort.setText(String.valueOf(MINVpnSettingAPI.INSTANCE.getBcSslPort()));
|
||||
|
||||
@@ -295,30 +295,35 @@ public class VpnIntranetPreparation implements VpnPreparationInterface{
|
||||
*/
|
||||
@RequiresApi(api = Build.VERSION_CODES.Q)
|
||||
private ParcelFileDescriptor configure(String parameters) throws IllegalArgumentException {
|
||||
// 0. 先按照服务器的应答信息配置提取TUN的IP地址
|
||||
// 1. 分解字符串从而获得VPN配置信息,并配置路由
|
||||
VpnService.Builder builder = mService.new Builder();
|
||||
for (String parameter : parameters.split(" ")) {
|
||||
String[] fields = parameter.split(",");
|
||||
try {
|
||||
switch (fields[0].charAt(0)) {
|
||||
case 'a':
|
||||
case 'm': // mtu配置
|
||||
builder.setMtu(Short.parseShort(fields[1]));
|
||||
break;
|
||||
case 'a': // tun网卡地址配置
|
||||
builder.addAddress(fields[1], 24);
|
||||
System.out.println("handshake ip: " + fields[1]);
|
||||
allocatedAddress = fields[1];
|
||||
break;
|
||||
case 'r': // 路由域配置
|
||||
builder.addRoute(fields[1], Integer.parseInt(fields[2]));
|
||||
break;
|
||||
case 'd': // dns服务器
|
||||
builder.addDnsServer(fields[1]);
|
||||
break;
|
||||
case 's':
|
||||
builder.addSearchDomain(fields[1]);
|
||||
break;
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
throw new IllegalArgumentException("Bad parameter: " + parameter);
|
||||
}
|
||||
}
|
||||
|
||||
// 1. 配置全局路由
|
||||
VpnService.Builder builder = mService.new Builder();
|
||||
builder.setMtu(1500); // 使用quick时,ip包要尽可能小,才能在MIN的链路层不分包(LpPacket)
|
||||
System.out.println("!!!allocatedAddress: "+allocatedAddress);
|
||||
builder.addAddress(allocatedAddress,24);
|
||||
builder.addRoute("0.0.0.0",0);
|
||||
// builder.addDnsServer("114.114.114.114");
|
||||
builder.addDnsServer("8.8.8.8");
|
||||
|
||||
// 2. 创建一个接口
|
||||
final ParcelFileDescriptor vpnInterface;
|
||||
// 2.1 添加没有权限的目录(copy旧项目的,不知道这个目录指的哪个玩意儿)
|
||||
|
||||
Reference in new issue
Block a user