-
Notifications
You must be signed in to change notification settings - Fork 669
求助HTTPS代理怎么设置呢? #288
Comments
感谢您的回复,这个我试过,但好像不起作用,是否需要在PacketTunnelProvide里面做别的处理?
|
如果你想的是用过TLS来连接到http代理的话,这个设置不是干这个的,这个设置只是说需要https请求的时候(需要CONNECT)的时候连到哪一个HTTP代理。
想要通过TLS连接到HTTP代理的话需要用NEKit的HttpsAdapter转一下。
… On Feb 14, 2020, at 6:29 PM, qinghuawen ***@***.***> wrote:
感谢您的回复,这个我试过,但好像不起作用,是否需要在PacketTunnelProvide里面做别的处理?
以下是我的代码。运行起来后,IP并不是https代理服务器的IP.
PacketTunnelProvider.m
- (void)startTunnelWithOptions:(NSDictionary *)options completionHandler:(void (^)(NSError *))completionHandler {
NEIPv4Settings *ipv4Settings = [[NEIPv4Settings alloc] initWithAddresses:@[@"192.0.2.1"] subnetMasks:@[@"255.255.255.0"]];
NSArray *dnsServers = @[@"8.8.8.8"];
ipv4Settings.includedRoutes = @[[NEIPv4Route defaultRoute]];
NEPacketTunnelNetworkSettings *settings = [[NEPacketTunnelNetworkSettings alloc] initWithTunnelRemoteAddress:@"192.0.2.2"];
settings.IPv4Settings = ipv4Settings;
settings.MTU = @(1500);
NEProxySettings* proxySettings = [[NEProxySettings alloc] init];
NSInteger proxyServerPort = 443;
NSString *proxyServerName = @"xxxx.xxxx.xxxx";
proxySettings.HTTPSEnabled = YES;
proxySettings.HTTPSServer = [[NEProxyServer alloc] initWithAddress:proxyServerName port:proxyServerPort];
proxySettings.autoProxyConfigurationEnabled = NO;
proxySettings.excludeSimpleHostnames = YES;
settings.proxySettings = proxySettings;
NEDNSSettings *dnsSettings = [[NEDNSSettings alloc] initWithServers:dnsServers];
settings.DNSSettings = dnsSettings;
[self setTunnelNetworkSettings:settings completionHandler:^(NSError * _Nullable error) {
if (error) {
if (completionHandler) {
completionHandler(error);
}
}else{
if (completionHandler) {
completionHandler(nil);
}
}
}];
}
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub <#288?email_source=notifications&email_token=AAJ2MLC4TAD7RJNJ4XIGZBDRCZXCJA5CNFSM4KUYOEY2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELYLMCQ#issuecomment-586200586>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AAJ2MLGGWO57UHRHXQGUDJLRCZXCJANCNFSM4KUYOEYQ>.
|
明白了,您的源码demo里面有这个转换处理吗?感激不尽 |
我想的就是填入一个https代理服务器的地址,连接后,网络请求通过代理发出,IP地址也会变成代理服务器的IP地址 |
你可以看一下demo
… On Feb 14, 2020, at 7:02 PM, qinghuawen ***@***.***> wrote:
明白了,您的源码demo里面有这个转换处理吗?感激不尽
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub <#288?email_source=notifications&email_token=AAJ2MLAQOUCXRKAB6J5OQMDRCZ24FA5CNFSM4KUYOEY2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELYOFMY#issuecomment-586212019>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AAJ2MLHNDMVAAEHBYEH33KTRCZ24FANCNFSM4KUYOEYQ>.
|
我个人的建议是你弄个pac,只返回PROXY https://host:port好了 <https://xn--host:port-ec7n287g>,具体语法你要再查一下
… On Feb 14, 2020, at 7:07 PM, qinghuawen ***@***.***> wrote:
我想的就是填入一个https代理服务器的地址,连接后,网络请求通过代理发出,IP地址也会变成代理服务器的IP地址
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub <#288?email_source=notifications&email_token=AAJ2MLE2AQJTUFXV4IYWF4DRCZ3N3A5CNFSM4KUYOEY2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELYOSEQ#issuecomment-586213650>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AAJ2MLFLCPAEVCTNLVF64B3RCZ3N3ANCNFSM4KUYOEYQ>.
|
用了PAC之后是不是可以不需要用NEKit的HttpsAdapter呢,只需要用我原来的代码,也就是NEProxySettings就可以了达到我的目标吗? |
用了PAC之后你不需要其他任何东西
… On Feb 14, 2020, at 7:16 PM, qinghuawen ***@***.***> wrote:
用了PAC之后是不是可以不需要用NEKit的HttpsAdapter呢,只需要用我原来的代码,也就是NEProxySettings就可以了吗?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub <#288?email_source=notifications&email_token=AAJ2MLHWOMCSKFT24AZL6N3RCZ4P7A5CNFSM4KUYOEY2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELYPJHI#issuecomment-586216605>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AAJ2MLFQZFNJ4GM2T36W46DRCZ4P7ANCNFSM4KUYOEYQ>.
|
再次感谢大佬,我试试 |
您好,按照您的建议试了一下,连接上之后还是无网络,我的代理服务器肯定是正常的,因为PC浏览器可以正常使用代理。以下是代码片段。感觉我就差最后一步了。。
其中https://example.mypac.com/pac.txt的内容如下,格式应该也没问题。
|
不要再设httpsproxy了
在 2020年2月14日,20:07,qinghuawen ***@***.***> 写道:
您好,按照您的建议试了一下,连接上之后还是无网络,我的代理服务器肯定是正常的,因为PC浏览器可以正常使用代理。以下是代码片段。感觉我就差最后一步了。。
NEPacketTunnelNetworkSettings *settings =[[NEPacketTunnelNetworkSettings alloc] initWithTunnelRemoteAddress:@"192.0.2.2"];
settings.IPv4Settings = ipv4Settings;
settings.MTU = @(1500);
NEProxySettings* proxySettings = [[NEProxySettings alloc] init];
NSInteger proxyServerPort = 443;
NSString *proxyServerName = @"example.myproxy.com";
proxySettings.HTTPSEnabled = YES;
proxySettings.HTTPSServer = [[NEProxyServer alloc] initWithAddress:proxyServerName port:proxyServerPort];
proxySettings.autoProxyConfigurationEnabled = YES;
proxySettings.proxyAutoConfigurationURL = [NSURL URLWithString:@"https://example.mypac.com/pac.txt"];
//proxySettings.excludeSimpleHostnames = YES;
settings.proxySettings = proxySettings;
其中https://example.mypac.com/pac.txt的内容如下,格式应该也没问题。
function FindProxyForURL(url, host) {
return "HTTPS example.myproxy.com:443"
}
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
您好,去掉httpsserver相关后,就只剩以下这几行代码了,好像还是有问题
|
你设了httpsenabled应该pacenabled就没用了
在 2020年2月14日,20:41,qinghuawen ***@***.***> 写道:
您好,去掉httpsserver相关后,就只剩以下这几行代码了,好像还是有问题
NEProxySettings* proxySettings = [[NEProxySettings alloc] init];
proxySettings.autoProxyConfigurationEnabled = YES;
proxySettings.HTTPSEnabled = YES;
proxySettings.proxyAutoConfigurationURL = [NSURL
URLWithString:@"https://example.mypac.com/pac.txt"];
settings.proxySettings = proxySettings;
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
您好,去掉HTTPSEnabled之后,就只剩与PAC相关的代码了。似乎还是没有网络。有没有可能是其他的比如ipv4setting等设置问题?
|
把defaultroute去掉
在 2020年2月14日,18:30,qinghuawen ***@***.***> 写道:
感谢您的回复,这个我试过,但好像不起作用,是否需要在PacketTunnelProvide里面做别的处理?
以下是我的代码。运行起来后,IP并不是https代理服务器的IP.
PacketTunnelProvider.m
- (void)startTunnelWithOptions:(NSDictionary *)options completionHandler:(void (^)(NSError *))completionHandler {
NEIPv4Settings *ipv4Settings = [[NEIPv4Settings alloc] initWithAddresses:@[@"192.0.2.1"] subnetMasks:@[@"255.255.255.0"]];
NSArray *dnsServers = @[@"8.8.8.8"];
ipv4Settings.includedRoutes = @[[NEIPv4Route defaultRoute]];
NEPacketTunnelNetworkSettings *settings = [[NEPacketTunnelNetworkSettings alloc] initWithTunnelRemoteAddress:@"192.0.2.2"];
settings.IPv4Settings = ipv4Settings;
settings.MTU = @(1500);
NEProxySettings* proxySettings = [[NEProxySettings alloc] init];
NSInteger proxyServerPort = 443;
NSString *proxyServerName = @"xxxx.xxxx.xxxx";
proxySettings.HTTPSEnabled = YES;
proxySettings.HTTPSServer = [[NEProxyServer alloc] initWithAddress:proxyServerName port:proxyServerPort];
proxySettings.autoProxyConfigurationEnabled = NO;
proxySettings.excludeSimpleHostnames = YES;
settings.proxySettings = proxySettings;
NEDNSSettings *dnsSettings = [[NEDNSSettings alloc] initWithServers:dnsServers];
settings.DNSSettings = dnsSettings;
[self setTunnelNetworkSettings:settings completionHandler:^(NSError * _Nullable error) {
if (error) {
if (completionHandler) {
completionHandler(error);
}
}else{
if (completionHandler) {
completionHandler(nil);
}
}
}];
}
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
您好,defaultRoute去掉后,网络正常,但是IP是本机IP,不是代理服务器的IP |
matchDomains?
https://github.com/zhuhaow/Specht/blob/master/SpechtTunnelPacketProvider/PacketTunnelProvider.swift <https://github.com/zhuhaow/Specht/blob/master/SpechtTunnelPacketProvider/PacketTunnelProvider.swift>
… On Feb 14, 2020, at 9:06 PM, qinghuawen ***@***.***> wrote:
您好,defaultRoute去掉后,网络正常,但是IP是本机IP,不是代理服务器的IP
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub <#288?email_source=notifications&email_token=AAJ2MLEIP5X4AJ5FX5O3NXTRC2JNDA5CNFSM4KUYOEY2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELY6XHQ#issuecomment-586279838>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AAJ2MLBBEZPTPZJ5AXHXCPTRC2JNDANCNFSM4KUYOEYQ>.
|
您好,matchDomains也去掉了。现在整体代码如下:
|
… On Feb 14, 2020, at 9:13 PM, qinghuawen ***@***.***> wrote:
您好,matchDomains也去掉了。现在整体代码如下:
- (void)startTunnelWithOptions:(NSDictionary *)options completionHandler:(void (^)(NSError *))completionHandler
{
NEIPv4Settings *ipv4Settings = [[NEIPv4Settings alloc] initWithAddresses:@[@"192.0.2.1"] subnetMasks:@[@"255.255.255.0"]];
NSArray *dnsServers = @[@"8.8.8.8"];
NEPacketTunnelNetworkSettings *settings = [[NEPacketTunnelNetworkSettings alloc] initWithTunnelRemoteAddress:@"192.0.2.2"];
settings.IPv4Settings = ipv4Settings;
settings.MTU = @(1500);
NEProxySettings* proxySettings = [[NEProxySettings alloc] init];
proxySettings.autoProxyConfigurationEnabled = YES;
proxySettings.proxyAutoConfigurationURL = [NSURL
URLWithString:@"https://example.mypac.com/pac.txt"];
settings.proxySettings = proxySettings;
NEDNSSettings *dnsSettings = [[NEDNSSettings alloc] initWithServers:dnsServers];
settings.DNSSettings = dnsSettings;
[self setTunnelNetworkSettings:settings completionHandler:^(NSError * _Nullable error) {
if (error) {
if (completionHandler) {
completionHandler(error);
}
}else{
if (completionHandler) {
completionHandler(nil);
}
}
}];
}
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub <#288?email_source=notifications&email_token=AAJ2MLHIVY3RVOMHOJIQ5K3RC2KH5A5CNFSM4KUYOEY2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELY7LFA#issuecomment-586282388>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AAJ2MLETOELSNZPDTOMXDDTRC2KH5ANCNFSM4KUYOEYQ>.
|
所以还是需要借助您这个httpAdapter吗? |
您好,之前没有写matchDomains这个参数,刚才加上了设置 |
你怎么测的ip |
就是在safari里面打开测IP网站,比如百度搜索IP. |
pac服务器访问日志有记录么 |
您好,我现在没权限访问pac服务器,但我直接把js脚本写到ios代理里了。但是这样也是不行的。 :(
|
不知道了
… On 14 Feb 2020, at 22:00, qinghuawen ***@***.***> wrote:
您好,我现在没权限访问pac服务器,但我直接把js脚本写到ios代理里了。但是这样也是不行的。 :(
proxySettings.proxyAutoConfigurationJavaScript = @"function FindProxyForURL(url, host) { return \"HTTPS example.myproxy.com:443\"}";
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
好的,不好意思打扰您这么久,网上这方面的资料确实太少了。我再自己研究一下,非常感谢! |
大佬,我想通过network extension实现简单的https代理,就像pc上浏览器设置https代理一样。可否贴一些demo代码呢?
The text was updated successfully, but these errors were encountered: