标签: vpn

Android 本地 VPN 服务:无法获得响应

我对 Android 及其服务还很陌生。我正在尝试在我的应用程序中实现本地VPN 服务(使用 Kotlin 和 Java)。

\n\n

问题

\n\n

我的 VPN 服务取自ToyVpn Google 示例,并结合 1、2、3 中的示例在本地使用无需连接到远程服务器),但无法正常工作。

\n\n
\n\n

我的应用程序原理

\n\n

我看到了这个这个问题,但是那里的答案不是很有见地,我找不到我的问题的解决方案。

\n\n

所以该应用程序非常简单:当用户单击主活动上的“是”按钮时,它应该转发所有数据包,当单击“否”时,它应该阻止它。目的:将其用作防火墙,如下所示:

\n\n

我的VPN应用程序的原理

\n\n

我所有的代码都是用 Kotlin 语言编写的,但它并不复杂,对于 JAVA 开发人员来说非常清晰。所以我希望上面的代码非常清晰,因为它取自此处(Google 提供的 ToyVpn 示例)并刚刚转换为 kotlin。

\n\n
\n\n

我的配置和代码

\n\n

为了在我的应用程序中启用 VPN 服务,我将AndroidManifest.xml放入<application>标记此设置:

\n\n
<service android:name="com.example.username.wifictrl.model.VpnFilter"\n         android:permission="android.permission.BIND_VPN_SERVICE" >\n    <intent-filter>\n        <action android:name="android.net.VpnService" />\n    </intent-filter>\n</service>\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的MainActivity代码包含:

\n\n
override fun …
Run Code Online (Sandbox Code Playgroud)

java vpn android kotlin kotlin-android-extensions

2
推荐指数
1
解决办法
8176
查看次数

通过 VPN 的 Python 请求给出 502 Bad Gateway

我正在尝试从我公司网络内的服务器与图书馆获取一些数据requests。我使用 VPN 进入公司网络,并且还设置了公司代理。我尝试访问的地址仅在该公司网络内可见。

import requests

url = "http://some.private.server.net"

r = requests.get(url)
Run Code Online (Sandbox Code Playgroud)

我在我的环境中设置了 HTTP_PROXY 和 HTTPS_PROXY。我运行的是 Windows 7。

我从这段代码中得到错误 502。当我物理连接到公司网络时它起作用了,所以我认为问题在于通过 VPN 而不是代理连接。我可以使用网络浏览器访问该地址。

我对网络了解不多,但我尝试将请求的源地址更改为VPN网络适配器使用的IP地址。

import requests
from requests_toolbelt.adapters.source import SourceAddressAdapter

s = requests.Session()
ip = "y.y.y.y"
s.mount('http://', SourceAddressAdapter(ip))
s.mount('https://', SourceAddressAdapter(ip))

url = "http://some.private.server.net"

response = s.get(url)
Run Code Online (Sandbox Code Playgroud)

这仍然导致与上面相同的错误(502)。

编辑:更仔细地查看 502 错误,代理服务器返回消息“您正在查找的页面的主机名不存在”。

因此,我尝试将 URL 替换为我尝试访问的服务器的 IP 地址,但由于“网关超时”而收到 502。

我可以从命令行 ping 该 IP,没有问题。

python vpn http-proxy python-3.x python-requests

2
推荐指数
1
解决办法
1万
查看次数

检查批处理文件中的 VPN 状态

我希望创建一系列批处理文件,在启动 VPN(如果尚未运行)之前检查特定 VPN 的状态,最后启动特定应用程序。

我有一个有效的示例,但我正在尝试对其进行修改,以作为学习练习和实际扩展。

我目前正在使用 ipconfig 和管道来 find/i 并查找 VPN 名称,强制断开连接,然后重新连接。

我也想做同样的事情,但如果 VPN 已启动,则跳过断开连接。

工作示例:

@echo OFF
::Check to see if the VPN is already connected and disconnect it
echo Checking for VPN connection...

@ipconfig|find/i "myVPN" && rasdial myVPN /disconnect
echo.
echo.

::Connect to the VPN server
@rasdial.exe myVPN "username" "password"
echo.
echo.
Run Code Online (Sandbox Code Playgroud)

正如我所说,这可行,但 VPN 的强制断开会扰乱可能通过 VPN 运行的其他一些服务,正如您可以想象的那样。

这就是我一直在玩的东西,但我似乎被困住了,一无所获,非常感谢您的建议!

进步:

@echo OFF

::Check to see if the VPN is already connected and disconnect it
echo Checking for VPN connection... …
Run Code Online (Sandbox Code Playgroud)

vpn batch-file

2
推荐指数
1
解决办法
4931
查看次数

Oracle 和 MS SQL 查询通过 VPN 非常慢

我有一个 C# 程序,它使用Oracle Database 12c Enterprise Edition 12.1.0.2.0 64 位的Oracle 驱动程序。在 LAN 上,程序中的选择大约需要 2 秒。如果我通过 VPN 隧道建立连接,则相同的选择大约需要 48 秒。
如果我 ping 数据库:
LAN:0.206 毫秒
VPN:53 毫秒

为了确保我也使用 Oracle SQL Developer 19.2.1 进行了测试,它显示了大致相同的结果。

我尝试在客户端将 MTU 降低到 1400,因为一些站点提到碎片是问题的原因,但这至少在我配置它的方式上没有改变任何东西。可能是什么原因造成的?

c# sql-server oracle vpn networking

2
推荐指数
1
解决办法
4965
查看次数

PHP cURL:无法解析主机(通过 VPN)

我远程工作,可以通过 VPN 访问内部服务器。当我的 VPN 连接建立后,我可以通过curl 访问我的网络服务器:

curl http://sub.mydomain.com
Run Code Online (Sandbox Code Playgroud)

我还可以通过浏览器访问网络服务器http://sub.mydomain.com。所以这似乎不是网络服务器本身的 DNS 问题。

然而,当开发通过 Apache 在本地提供服务的 Laravel 4.2 应用程序 (PHP 5.6) 时,phpcurl_exec无法解析主机。奇怪的是,phpgethostbyname($hostname)正确解析了主机。我曾尝试强制使用 IPv4,因为我读过 IPv6 可能会导致此类失败,但没有成功。

// works
$ip = gethostbyname($hostname);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://$ip/path");
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_exec($ch);

// does NOT work
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://$hostname/path");
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_exec($ch);
Run Code Online (Sandbox Code Playgroud)

这让我不知所措。我不明白 PHPcurl 如何处理 DNS 解析(显然不是gethostbyname)。我一开始也不明白专用网络上的 DNS 查找是如何工作的。所以我真的不知道在哪里可以找到 PHP curl 来解析我的私有主机。

php dns macos vpn curl

2
推荐指数
1
解决办法
2387
查看次数

如何使用 pritunl 自动授权 VPN 网络,用户名和密码保留在 Macos 上的文件中

Pritunl 简单客户端很棒,但它没有提供保留用户的用户名和密码的方法。有没有办法从文件中读取授权数据,这样就不必在每个 VPN 连接上弹出登录窗口?

macos vpn pritunl

2
推荐指数
1
解决办法
4630
查看次数

带代理的 PHP cURL(不是 SOCKS5)

我的工作代码通过 SOCKS5 协议使用我的 VPN (NordVPN) 凭据。

最近,他们放弃了对 SOCKS5 的支持,所以我必须使用他们的其他协议,但我无法让任何协议工作。

他们所有可用的协议都可以在这里看到

https://nordvpn.com/servers/tools/

- IKEv2/IPSec
- OpenVPN
- Wireguard
- HTTP Proxy (SSL)
Run Code Online (Sandbox Code Playgroud)

这是我的代码,尝试使用他们的“HTTP 代理(SSL)”协议

$cookie_file = tempnam("/tmp", "CURLCOOKIE");;

$ch = curl_init();

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_ENCODING, "");
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_HEADER, 0);

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120); // in seconds
curl_setopt($ch, CURLOPT_TIMEOUT, 120);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($ch, CURLOPT_PROXYTYPE, 'HTTP');
curl_setopt($ch, CURLOPT_PROXYPORT, "443");
curl_setopt($ch, CURLOPT_PROXY, "au643.nordvpn.com");

curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyUser . ":" …
Run Code Online (Sandbox Code Playgroud)

php vpn proxy curl php-curl

2
推荐指数
1
解决办法
3558
查看次数

升级到 Linux CLI 版本 3 后,ProtonVPN 损坏了我的机器

我使用的是 ProtonVPN Linux CLI 客户端 Ubuntu 18.04。

我之前使用的是2.2.6版本,但是我想升级,这是一个巨大的错误。

我卸载了 v2.2.6 并按照 ProtonVPN 网站上安装 v3.7.1 的说明进行操作。

安装后,我能够创建连接、使用互联网等。一切似乎都正常。我使用 永久启用了终止开关$ protonvpn-cli ks --permanent

然后,我合上笔记本电脑的盖子。当我重新打开它时,我没有互联网连接。我预料到了这一点,因为这就是 2.2.6 客户端的工作方式,而且我习惯于每次打开笔记本电脑时都必须手动重新连接。

我尝试重新连接到 VPN,但它没有按我预期的方式工作。$ protonvpn-cli r找不到以前的连接数据,并$ protonvpn-cli c返回错误

Setting up ProtonVPN

An unknown error has occured.  Please ensure that you have internet connectivity.
If the issue persists, please contact support
Run Code Online (Sandbox Code Playgroud)

我的无线网络连接很好。如果连接是问题,那么我认为它一定是终止开关。我用 禁用了终止开关$ protonvpn-cli ks --off。我的第一个问题是,在 v.2.2.6 下,我不必禁用终止开关即可连接到 ProtonVPN 本身。v3.7.1 中有这个改变吗?

禁用终止开关后,$ protonvpn-cli r继续找不到以前的连接数据,但$ protonvpn-cli c至少尝试工作。然而,它还是坏了。加载国家/地区列表需要一分钟时间。当我选择“美国”时,加载服务器列表时它似乎冻结了。我试了好几次,都重新连接了wifi。它只是不会加载服务器。

我的设备现在完全无法连接互联网。我已经关闭了终止开关,我已经关闭了正在运行的终端,并且机器上protonvpn-cli …

vpn networking

2
推荐指数
1
解决办法
4543
查看次数

Ubuntu 22.04 OpenVpn 服务器错误:写入 TUN/TAP:参数无效(代码=22)

openvpn --dev tun --ifconfig 172.16.0.1 172.16.0.2 --cipher AES-256-CBC我在 Ubuntu 22.04 Linux Box 上启动 openvpn 服务器

我使用 easycert 生成证书和密钥,并在 Windows 10 客户端上复制所有内容。

连接不起作用,在系统日志中我发现很多

write to TUN/TAP : Invalid argument (code=22)
write to TUN/TAP : Invalid argument (code=22)
...
Run Code Online (Sandbox Code Playgroud)

怎么了?这是我的客户端配置文件:

client
dev tun
proto udp
remote *MYSERVERIP* 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
remote-cert-tls server
cipher AES-256-CBC

Run Code Online (Sandbox Code Playgroud)

linux ubuntu vpn openvpn

2
推荐指数
1
解决办法
6987
查看次数

在C#中创建VPN客户端

我一直在寻找不同的VPN,看起来他们没有很好的加密(比如默认的Windows XP VPN服务器).

我想看看我是否可以使用C#创建自己的.但我不知道如何创建一个拦截所有数据包的客户端,并将它们转发到VPN服务器.

我该怎么做?

c# vpn networking

1
推荐指数
1
解决办法
5188
查看次数