我正在开发一个项目,我需要捕获传入/传出的数据包并将它们存储在pcap文件中.
Android提供VpnService了这个目的,它已经在API级别14中添加了.尽管在SO上似乎有很多关于此的问题,但令人惊讶的是它的工作实例却非常少.我尝试使用添加在样本中的ToyVpn,但我无法使其工作.然后我发现了这个例子.
该示例总结了以下步骤中的捕获.
我使用下面的代码创建了一个TUN.我给出了上述教程中给出的地址.不确定,如果有正确的值.以及如何确定这个地址.
Builder builder = new Builder();
ParcelFileDescriptor mInterface = builder.setSession("MyVPNService")
.addAddress("192.168.0.1", 24)
.addDnsServer("8.8.8.8")
.addRoute("0.0.0.0", 0).establish();
Run Code Online (Sandbox Code Playgroud)
接下来我得到了文件描述符,并打开了隧道.
FileInputStream in = new FileInputStream(
mInterface.getFileDescriptor());
DatagramChannel tunnel = DatagramChannel.open();
// I have created a EC2 instance on AWS, and gave the ip Address and port of that server. Not sure if this is the correct method.
tunnel.connect(new InetSocketAddress("54.254.187.207", 5000));
//d. Protect this socket, so package send …Run Code Online (Sandbox Code Playgroud) 我正在尝试通过 HTTP 隧道重定向整个 android 网络流量,但没有关于如何执行此操作的教程或 Github 存储库。
只需从用户那里获取主机、端口、用户名和密码,并以编程方式将整个设备隧道连接到该主机。
我已经用鱿鱼配置了一个 HTTP 代理服务器,只需要一个客户端来连接它。
我不想要 Open-VPN 解决方案或 StrongSwan,这个名为 TOOFAN Tunnel 的应用程序正在满足我的需求,但它仅在某些国家/地区可用,并且它不是一个开源项目。
只需要有人向我展示道路或让我朝着正确的方向前进,我提前表示感谢。
我知道 Android 的VpnServise,以及它如何重定向流量,我只是不知道实现一个套接字来通过带有凭据的 HTTP 代理传输数据包。
我已经构建并测试了 20 多个存储库,但没有一个有效。其中有些是: SSLSocks,TunProxy,VpnProxy,SmartProxy,NetDroidProxy,LocalVPN,xSocks,机器人,PROX。
我有一个支持环境,我们使用VPN和远程桌面连接到我们的许多客户的系统.现在,支持人员必须在他们的工作站上手动设置VPN连接.有没有办法以编程方式创建VPN连接?
我第一次通过VPN连接到现有网络.我可以从VPN客户端ping SQL Server使用的IP地址,但SSMS不连接到SQL Server.我使用正确的登录ID和密码.
为什么会这样?有任何想法吗 ?
谢谢
我是Android开发的新手.我正在尝试从我的Android应用加入现有的VPN.我想在我的应用程序中集成VPN; 我的应用程序然后应该查询远程数据库.
我得到了一些代码并试图用它来创建VPN.它模拟Android手机上的内置VPN管理器.代码编译并启动管理器但是当我尝试在所有配置之后进行连接时,与VPN的连接不成功.该协议是PPTP.VPN存在并已经过测试.
我尝试从具有相同设置的Android手机连接,并且它成功了.
我想也许我以错误的方式传递参数.我已经为下面的vpn部分编了代码.网址不是实际的,但格式相同.
任何帮助,以确定我做错了什么将不胜感激.此外,如果有一种方法,我可以直接从我的应用程序调用VPN管理器.
非常感谢您的帮助,
final Button button1 = (Button)findViewById(R.id.button1);
final Button button2 = (Button)findViewById(R.id.button2);
final Button button3 = (Button)findViewById(R.id.button3);
button1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
startActivity(new Intent("android.net.vpn.SETTINGS"));
}
});
button2.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
URL url = null;
try {
String registrationUrl = String.format("daffy.zune.org");
url = new URL(registrationUrl);
URLConnection connection = url.openConnection();
HttpURLConnection httpConnection = (HttpURLConnection) connection;
int responseCode = httpConnection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
Log.d("MyApp", "Registration success");
} else { …Run Code Online (Sandbox Code Playgroud) 我有时被迫离开办公室工作,这意味着我需要VPN进入我的实验室.我注意到在这种情况下使用Eclipse进行远程调试非常慢.缓慢到调试器连接到远程jvm需要5-7分钟的时间点.连接后,逐步通过断点/线路每次可能需要20-30秒,而且它通常会断开连接,使我不得不重新开始.
任何人都能解释为什么会这样,即使没有可用的解决方案?考虑到远程调试器的行为,我通过VPN的延迟几乎不是人们期望的.我通过VPN做各种其他的事情,最小的滞后/阻塞.
我真的很难理解为什么远程调试器受到VPN的困扰,基本上每个其他网络操作都没问题.
谢谢,
我想阻止使用VPN或代理的服务器的所有连接.无论如何都检测到正在使用VPN或代理连接?如果没有,无论如何我可以检查VPN或代理的使用可能性吗?最后,是否有任何我可以查询或提示用户检查他们是否使用VPN或代理,以便如果有人通过,我可以尝试执行其他验证?我不需要用户提供任何信息,例如位置,真实IP或类似的信息.我只是想完全禁止来自VPN或代理的连接.
编辑:我一直在想我可能会运行一个测试,看看ping到VPN IP和客户端的可检测延迟之间是否存在一致的差异,但这听起来非常不可靠.
编辑2:代理或VPN服务器可能比标准的家庭连接有更多的端口打开,因此我可以使用打开的端口数量来帮助通过对连接人员进行端口扫描来衡量来自VPN的连接的可能性.
我读到Android >=4不再包含VPN连接配置文件(例如:),L2TP/IPSec并且只提供了一个基本处理程序VpnService.
现在我们必须自己实现一切,是否有任何提供基本L2TP/IPSec通信代码的java库?
我希望能够使用此库,将其与VPN服务集成并在Android应用程序中使用它.
在此先感谢大家.
这是场景:在工作中我们有很多分支,我们没有像我们应该的那样保持仓库整洁,偶尔添加/删除大文件或诸如此类的东西,并且很少删除死枝.
所以今天是下雪天,我必须在家工作.我有一个缓慢的VPN连接,我所需要的只是最快的方式来到我关心的一个分支并开始工作,能够推送提交.
在SVN中,我刚刚更新了我需要的路径/文件,并且很快就会工作.像大多数git新手一样,我只有一些可信命令,而我的后备git clone或git pull将会太慢.
所以这似乎是一个两部分的问题:
工作解决方案(根据@ g19fanatic的建议):
> mkdir <project_name>
> cd <project_name>
> git clone -b <branchname> <repo_url> --depth=1
remote: Counting objects: 16679, done.
remote: Compressing objects: 100% (11926/11926), done.
remote: Total 16679 (delta 6936), reused 10919 (delta 3337)
Receiving objects: 100% (16679/16679), 628.12 MiB | 430 KiB/s, done.
Resolving deltas: 100% (6936/6936), done.
> git pull
Already up-to-date.
Run Code Online (Sandbox Code Playgroud)
(在其他机器上进行小的更改,提交/推送)
> git pull
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (5/5), done.
remote: Total …Run Code Online (Sandbox Code Playgroud) 我有一台运行 Wireguard 的服务器,并且我有多个客户端(对等方)连接到它并正在运行。我不太确定 VPN 是如何工作的,但这是我当前的设置。
在/etc/wireguard/wg0.conf我的服务器看起来像这样。
[Interface]
Address = 172.16.16.1/24
SaveConfig = true
ListenPort = 8999
PrivateKey = XXX
[Peer]
PublicKey = XXX
AllowedIPs = 172.16.16.2/32
[Peer]
PublicKey = XXX
AllowedIPs = 172.16.16.3/32
Run Code Online (Sandbox Code Playgroud)
我的客户端上的配置wg0.conf看起来像这样。
[Interface]
PrivateKey = XXX
Address = 172.16.16.x/32
[Peer]
PublicKey = XXX
AllowedIPs = 172.16.16.0/24
PersistentKeepalive = 30
Run Code Online (Sandbox Code Playgroud)
一切都启动并运行后,从我的具有 IP 地址的客户端172.16.16.2,我可以 ping 服务器172.16.16.1。我可以从我的其他客户端执行同样的操作172.16.16.3,我可以 ping 服务器 172.16.16.1。
有趣的是,从我的服务器,我能够 ping 所有的对等点!也就是说,从内部172.16.16.1,我可以 ping172.16.16.2和172.16.16.3。但这是设置的主要目的! …