diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..159a183 --- /dev/null +++ b/.gitignore @@ -0,0 +1,39 @@ +# User-specific stuff: +.idea/workspace.xml +.idea/tasks.xml + +# Sensitive or high-churn files: +.idea/dataSources/ +.idea/dataSources.ids +.idea/dataSources.xml +.idea/dataSources.local.xml +.idea/sqlDataSources.xml +.idea/dynamic.xml +.idea/uiDesigner.xml + +# Gradle: +.idea/gradle.xml +.idea/libraries + +# Mongo Explorer plugin: +.idea/mongoSettings.xml + +## File-based project format: +*.iws + +## Plugin-specific files: + +# IntelliJ +/out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000..6a112f9 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +go-socks-server \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..96cc43e --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..97626ba --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..a8cacf4 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..a98cc18 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..fa74c25 --- /dev/null +++ b/Dockerfile @@ -0,0 +1 @@ +FROM golang:1.7.4-onbuild diff --git a/go-socks-server.iml b/go-socks-server.iml new file mode 100644 index 0000000..4fb9d12 --- /dev/null +++ b/go-socks-server.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/server.go b/server.go new file mode 100644 index 0000000..87c9f9a --- /dev/null +++ b/server.go @@ -0,0 +1,28 @@ +package main + +import ( + "github.com/armon/go-socks5" + "os" + "log" +) + +func main() { + creds := socks5.StaticCredentials{ + os.Getenv("PROXY_USER"):os.Getenv("PROXY_PASSWORD"), + } + cator := socks5.UserPassAuthenticator{Credentials: creds} + // Create a SOCKS5 server + conf := &socks5.Config{ + AuthMethods: []socks5.Authenticator{cator}, + Logger: log.New(os.Stdout, "", log.LstdFlags), + } + server, err := socks5.New(conf) + if err != nil { + panic(err) + } + + // Create SOCKS5 proxy on localhost port 8000 + if err := server.ListenAndServe("tcp", "0.0.0.0:1080"); err != nil { + panic(err) + } +} \ No newline at end of file