Step 1. Add the JitPack repository to your build file
Add it in your root settings.gradle at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
}
Add it in your settings.gradle.kts at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url = uri("https://jitpack.io") }
}
}
Add to pom.xml
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
Add it in your build.sbt at the end of resolvers:
resolvers += "jitpack" at "https://jitpack.io"
Add it in your project.clj at the end of repositories:
:repositories [["jitpack" "https://jitpack.io"]]
Step 2. Add the dependency
dependencies {
implementation 'com.github.fengyouchao:sockslib:v1.3.16-beta'
}
dependencies {
implementation("com.github.fengyouchao:sockslib:v1.3.16-beta")
}
<dependency>
<groupId>com.github.fengyouchao</groupId>
<artifactId>sockslib</artifactId>
<version>v1.3.16-beta</version>
</dependency>
libraryDependencies += "com.github.fengyouchao" % "sockslib" % "v1.3.16-beta"
:dependencies [[com.github.fengyouchao/sockslib "v1.3.16-beta"]]
SocksLib is a Java library for SOCKS5 protocol.
See Wiki Page (Chinese)
If you are looking for a SOCKS5 server instead of a SOKCS5 library, I hope Esocks can help you.
You should put following libraries in your project's CLASSPATH:
SocksProxy proxy = new Socks5(new InetSocketAddress("localhost",1080));
Socket socket = new SocksSocket(proxy, new InetSocketAddress("whois.internic.net",43));
Connect SOCKS5 server using SSL connection
SSLConfigurationBuilder builder = SSLConfigurationBuilder.newBuilder();
builder.setTrustKeyStorePath("client-trust-keystore.jks");
builder.setTrustKeyStorePassword("123456");
SocksProxy proxy = new SSLSocks5(new InetSocketAddress("localhost", 1081), builder.build());
Socket socket = new SocksSocket(proxy, new InetSocketAddress("whois.internic.net",43));
SocksServerSocket serverSocket = new SocksServerSocket(proxy, inetAddress,8080);
InetAddress bindAddress = serverSocket.getBindAddress();
int bindPort = serverSocket.getBindPort();
Socket socket = serverSocket.accept();
DatagramSocket socket = new Socks5DatagramSocket(proxy);
SocksProxyServer proxyServer = SocksServerBuilder.buildAnonymousSocks5Server();
proxyServer.start();// Creat a SOCKS5 server bind at port 1080
SSL socks server
SSLConfigurationBuilder builder = SSLConfigurationBuilder.newBuilder();
builder.setKeyStorePath("server-keystore.jks");
builder.setKeyStorePassword("123456");
builder.setClientAuth(false);
socksProxyServer = SocksServerBuilder.buildAnonymousSSLSocks5Server(1081, builder.build());
socksProxyServer.start();