我有时必须编写软件来与驻留在Cisco VPN中的特定服务器建立套接字.我只是编写我的软件,好像没有VPN(使用标准套接字库).在运行此程序时,我使用计算机上安装的客户端软件手动连接到VPN,然后运行程序本身.
但是,希望编写软件以利用能够直接通过VPN进行通信的专用套接字库,而无需使用任何已安装的客户端软件.
这是一些Java代码,说明了我想要的功能:
String vpnHost = ...;
String vpnUser = ...;
String vpnPassword = ...;
VPNConnection vpnConnection = new CiscoVPNConnection(vpnHost, vpnUser, vpnPassword);
String serverHost = ...;
int serverPort = ...;
Socket socket = vpnConnection.openSocket(serverHost, serverPort);
Run Code Online (Sandbox Code Playgroud)
是否可以在不安装任何客户端软件的情况下建立与VPN的连接?
我想在运行时(通过代码)创建/添加虚拟网络适配器到客户端操作系统,最好是在C#中.类似于VirtualBox/VMware/Himachi在安装软件时创建的内容.我猜这将需要一些C/C++恶作剧用于驱动程序集成,但如果它只用于C#,那就更好了.
我知道OpenVPN,他们的东西主要是在C中,我也知道TUN/TAP驱动程序浮动,我只是不知道这些是否是唯一的解决方案,不需要我为Windows创建一个完整的网络驱动程序.
我是node.js的新手,并寻找一些示例代码或指针,使用VPN连接通过PPTP连接到私有虚拟IP地址.我有一个在aws上运行的node.js服务器,当前使用udp连接到公共IP地址.但是,这需要更改为隧道到私有VPN.
我有vpn的uid,pwd和apn.我需要采取什么步骤来隧道,然后连接到私人IP?
感谢您可能提供的任何提示.
谢谢M.
我的非root用户Android 4.4设备上有第三方VPN应用程序,并且想要编写后台服务来监控VPN连接,并在VPN连接断开时提醒用户.
有没有办法做到这一点?我找不到任何使用VPNService API的方法.
感谢:D
我正在尝试在两个AWS Region(俄勒冈州和爱尔兰)之间建立VPN.在俄勒冈州,我使用了AWS VPN服务,在爱尔兰,我使用了市场上的vyos EC2实例.在Oregon,我启动了一个实例,并为ICMP请求打开了安全组(0.0.0.0/0用于测试).我的Vyos实例的安全组也是开放的.
VPN双方都是UP,但我有一个奇怪的问题.
测试1:
从EC2-Oregon到EC2-Vyos的Ping:工作
测试2:
从EC2-Vyos到EC2-Oregon的Ping:不工作
但是如果我在EC2-Oregon上启动一个wireshark,我看到了ICMP请求,问题似乎就在ICMP回复上了:
11.609958 169.254.12.138 -> 10.10.2.45 ICMP 98 Echo (ping) request id=0x2f3d, seq=1/256, ttl=63
11.929702 10.0.1.177 -> 10.10.2.45 ICMP 71 Time-to-live exceeded (Time to live exceeded in transit)
12.610213 169.254.12.138 -> 10.10.2.45 ICMP 98 Echo (ping) request id=0x2f3d, seq=2/512, ttl=63
12.929659 10.0.1.177 -> 10.10.2.45 ICMP 71 Time-to-live exceeded (Time to live exceeded in transit)
13.610111 169.254.12.138 -> 10.10.2.45 ICMP 98 Echo (ping) request id=0x2f3d, seq=3/768, ttl=63
13.929952 10.0.1.177 -> 10.10.2.45 ICMP 71 …Run Code Online (Sandbox Code Playgroud) 我正在尝试抓取网站上的一些页面,但要查看页面,我需要连接到VPN.我的设置如下:
我想在通过VPN连接的pythonanywhere上运行一个脚本,以便流量似乎来自澳大利亚.
到目前为止我找到的最接近的答案是:
我有两个关于VpnService.Builder类的问题.
假设我知道应用程序与其服务器通信www.somedomain.com,我知道服务器的IP地址是210.32.204.165.
关于addAddress(String address,int prefixLength)函数.在文档中,它说这个功能"为VPN接口添加一个网络地址",这是什么意思?是否意味着流量到达该地址(应用程序的服务器IP地址)将通过VPN或来自此地址的流量(设备IP?)将通过VPN?
有一个函数addAllowedApplication(String packageName),它指定哪个应用程序的流量通过VPN隧道.有没有办法或功能强制发送到服务器的所有流量www.somedomain.com通过VPN隧道?
当我可以推/拉到bitbucket:
id_rsa_bitbucket_workid_rsa_bitbucket.我的VPN有一个静态IP.当我不能推/拉到bitbucket时:
ida_rsa_bitbucket.我的适当条目~/.ssh/config是:
Host bitbucket
HostName bitbucket.org
User git
IdentityFile ~/.ssh/id_rsa_bitbucket
Run Code Online (Sandbox Code Playgroud)
无论我正在经历什么样的网络/ VPN,通过SSH连接到github存储库始终有效.
我检查过以确保:
ssh -Tv bitbucket未登录VPN时的输出为:
OpenSSH_6.9p1, LibreSSL 2.1.8
debug1: Reading configuration data /Users/fcarter/.ssh/config
debug1: /Users/fcarter/.ssh/config line 1: Applying options for bitbucket
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug1: /etc/ssh/ssh_config line 56: Applying options for *
debug1: Connecting to bitbucket.org [2401:1d80:1010::150] port 22.
debug1: Connection established. …Run Code Online (Sandbox Code Playgroud) 我正在探索Android的VpnService的功能.目前,我通过在用户空间重建IP堆栈构建了一个非常基本的请求转发器:我从VpnService的输入流中读取IP数据包,解析它们,对于我不想转发的连接,我尝试重新创建那些VPN连接外部的套接字连接.
我已经明白最后一点是通过VpnService.protect()以下方式实现的:
Socket socket = new Socket();
vpnService.protect(socket);
socket.connect(new InetSocketAddress(
header.getDestinationAddress(), // From my IP datagram header
body.getDestinationPort())); // From the TCP datagram header
Run Code Online (Sandbox Code Playgroud)
不幸的是,这种方法导致VPN接口的环回.
虽然上面的代码只是阻塞并最终超时,但我通过Socket.connect(InetSocketAddress)从一个单独的线程调用来观察环回; 连接直接返回到我的VpnService的输入流,并重复该过程.
不用说,这会导致循环.我觉得这样做的原因是在创建套接字时(以及随后的调用VpnService.protect(Socket)),我还没有设置目标IP和端口.
这似乎确实如此,因为通过覆盖VpnService.protect(Socket)和 VpnService.protect(int)我的VpnService实现并在两种情况下调用超级都返回false.
如何正确保护套接字连接?
sockets vpn android packet-capture android-4.0-ice-cream-sandwich
vpn ×10
android ×3
sockets ×3
android-4.0-ice-cream-sandwich ×1
bitbucket ×1
c# ×1
cisco ×1
git ×1
ipv6 ×1
java ×1
macos-sierra ×1
monitoring ×1
networking ×1
node.js ×1
pia ×1
pptp ×1
python ×1
ssh ×1