javavpn库的简单介绍

博主:adminadmin 2022-12-07 16:18:12 56

本篇文章给大家谈谈javavpn库,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

程序能通过vpn连接数据库吗

可以的,只要网络通就可以,不用管是怎么通的。但是要注意防火墙,如果不同网关还要设置端口映射。

win10系统下,浏览器通过activeX或者Java方式运行vpn被阻止的情况的解决

尝试以下几点:

1、关闭系统防火墙

2、下载谷歌浏览器

3、通过打开Edge, 使用 IE方式打开,然后到菜单里重新添加证书进去,

因为你最后一张图里显示的是提供有效的证书,说明是没有识别出来,或者是未安装成功,所以尝试用默认的IE添加证书。

通过hook connect 函数 实现 VPN功能是否可行

在android系统中,可以使用iptables控制单个应用网络访问。在google code上有一个开源项目-droidwall就是基于iptables实现的。除了iptables可以实现控制单个应用网络访问外,还可以通过拦截应用中的connect函数,达到控制应用访问网络的目的。下面从几个方面分析android应用中connect调用流程为例来实现拦截connect实现网络禁用和ip过滤。(以下分析基于4.2源码)

1.android中网络访问流程

1)android系统中访问网络可以通过Socket.java、URL.java、HttpPost.java、HttpGet.java等关键类来访问网络资源。通过代码追踪,这些类访问网络资源最终需要通过native方式,调用linux系统下的socket函数访问网络。在android4.2源码中,java层访问网络得native方法定义在源码路径libcore/luni/src/main/java/libcore/io/Posix.java中(4.0之前的网络系统、文件系统的native方法是独立分开得,4.0之后组织在Posix.java中)。如下是Posix.java中的代码片段:

public final class Posix implements Os {    Posix() { }    public native FileDescriptor accept(FileDescriptor fd, InetSocketAddress peerAddress) throws ErrnoException, SocketException;    public native boolean access(String path, int mode) throws ErrnoException;    public native void bind(FileDescriptor fd, InetAddress address, int port) throws ErrnoException, SocketException;    ......    //对应linux下的connect系统调用    public native void connect(FileDescriptor fd, InetAddress address, int port) throws ErrnoException, SocketException; 

2)Posix.java中的native方法实现源码路径libcore/luni/src/main/native/libcore_io_Posix.cpp文件中,native   connect方法实现代码片段如下:

taticvoidPosix_connect(JNIEnv*env,jobject,jobjectjavaFd,jobjectjavaAddress,jintport)

{

    sockaddr_storagess;

    if(!inetAddressToSockaddr(env,javaAddress,port,ss))

    {

        return;

    }

    constsockaddr*sa=reinterpret_castconstsockaddr*(ss);

    (void)NET_FAILURE_RETRY(env,int,connect,javaFd,sa,sizeof(sockaddr_storage));

}

有上代码可知,java层connect最终功能由linux系统connect函数实现。

2.so注入

so注入可以参考古河大哥牛逼的libInject(点击这里访问)。

3.拦截connect库编写

在connect中,获取传入的参数ip地址,根据需要把需要禁用的ip地址改为127.0.01.以下是我测试的拦截connect函数关键代码:

intnew_connect(intsockfd,conststructsockaddr*addr,socklen_taddrlen)

{

    LOGDD("HOOK

 ====new connect****************");

    charip[128]={0};

    intport=-1;

    if(addr-sa_family==AF_INET)

    {

        structsockaddr_in*sa4=(structsockaddr_in*)addr;

        inet_ntop(AF_INET,(void*)(structsockaddr*)sa4-sin_addr,ip,128);

        port=ntohs(sa4-sin_port);

        LOGDD("AF_INET  IP===%s:%d",ip,port);

    }

    elseif(addr-sa_family==AF_INET6)

    {

        structsockaddr_in6*sa6=(structsockaddr_in6*)addr;

        char*ipv6=NULL;

        inet_ntop(AF_INET6,(void*)(structsockaddr*)sa6-sin6_addr,ip,128);

        ipv6=strstr(ip,"f:");

        if(NULL!=ipv6)

        {

            strcpy(ip,ipv6+2);

        }

        port=ntohs(sa6-sin6_port);

        LOGDD("af_inet6

 IP===%s:%d",ip,port);

    }

    else

    {

        returnold_connect(sockfd,addr,addrlen);

    }

 

    if(strcmp(ip,"115.23.20.178")==0)

    {

 

        LOGDD("%s

 ==127.0.0.1",ip);

        structsockaddr_inmy_addr;

        intmy_len=sizeof(structsockaddr_in);

        bzero(my_addr,sizeof(my_addr));

        my_addr.sin_family=AF_INET;

        my_addr.sin_port=htons(80);

        my_addr.sin_addr.s_addr=inet_addr("127.0.0.1");

 

        returnold_connect(sockfd,(constsockaddr*)my_addr,sizeof(my_addr));

    }

    else

    {

        return  old_connect(sockfd,addr,addrlen);

    }

}

4.拦截connect函数功效

1)禁用应用网络访问。

2)过滤广告ip

3)禁用定位功能

登录vpn后,java程序无法访问远数据库或远程服务(微服务或webservice服务)

场景:在家远程办公,使用vpn访问公司微服务, 浏览器能正常访问, 但java程序发起的请求不能

解决方法:加入java启动参数: -Djava.net.preferIPv4Stack=true

如果使用的是tomcat则在tomcat启动参数里面添加 -Djava.net.preferIPv4Stack=true

如果使用的是springboot则

vpn数据库管理系统

vpn是虚拟专用网的简称。

你的单位搭建了vpn,并且就给了你账号,那么你在家里,连接上vpn后,就和你在单位的局域网中一样操作。

如何将开源项目打包成.so文件

但是最近要做一个Android的VPN客户端,由于没找到基于Java的VPN开源库,只找到了C语言编写的开源客户端,叫做PPTP Client,这个代码是公开的。

我想把这个开源项目的C代码打包成so文件,然后放到我的Android项目中,在JAVA代码中通过JNI调用PPTP Client,实现VPN连接。

关于javavpn库和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-07,除非注明,否则均为首码项目网原创文章,转载请注明出处。