At line 1 changed one line |
The CrushTunnel process can be integrated into an existing workflow using a standalone machine acting as the tunnel provider, or programmatically through your own code. |
!Start a Single Tunnel |
At line 3 added 2 lines |
The CrushTunnel process can be integrated into an existing workflow using a standalone machine acting as the tunnel provider, or programmatically through your own code. CrushTunnel.jar can be found in the CrushFTP WebInterface folder. |
|
At line 6 changed one line |
java -Dcrushtunnel.pasv.ip=71.123.244.10 -Dcrushtunnel.pasv.port.start=2000 -Dcrushtunnel.pasv.port.stop=2100 -Djava.awt.headless=true -cp CrushTunnel.jar com.crushftp.tunnel.AutoChannelProxy protocol=https host=www.crushftp.com port=443 username=demo password=demo localport=2121 |
java -cp CrushTunnel.jar com.crushftp.tunnel2.Tunnel2 protocol=https host=www.crushftp.com port=443 username=demo password=demo |
At line 14 added one line |
!Start a Tunnel in Code |
At line 15 changed 6 lines |
final AutoChannelProxy tunnel = new AutoChannelProxy(); |
Thread thread = new Thread(new Runnable(){public void run(){ //create a thread for running the tunnel as this method does not return until the tunnel is done. |
String args[] = new String[]{"protocol=https","host=www.crushftp.com","port=443","username=demo","password="demo","localport=2121"}; |
tunnel.doTunnel(args); |
}}); |
thread.start(); |
com.crushtunnel.gui.Common.trustEverything(); //ignore SSL validation issues…bad for prod use |
com.crushftp.tunnel2.Tunnel2 t = new com.crushftp.tunnel2.Tunnel2("https://www.crushftp.com:443/", "demo", "demo", false); |
t.startThreads(); |
At line 24 changed one line |
thread.interupt(); |
t.stopThisTunnel(); |
At line 26 added 74 lines |
|
---- |
!Install as a Service on Windows for an Always on Tunnel |
|
Here is another example for installing the tunnel as a service on Windows. First, make sure you have CrushFTP installed as a service on windows. You need this as we need the "service" folder that this creates. Copy this service folder somewhere else and call it "CrushTunnel". For my example, I put this in my program files folder. |
|
Now edit the wrapper.conf file to make it have these contents, with adjustments to the bottom part which applies to your server. |
|
{{{ |
wrapper.java.command=C:\\Program Files (x86)\\Java\\jre6\\bin\\java |
wrapper.working.dir=C:\\Program Files (x86)\\CrushTunnel\\ |
wrapper.java.app.mainclass=com.crushtunnel.gui.GUIFrame |
wrapper.console.visible=false |
wrapper.console.title=CrushTunnel |
|
wrapper.ntservice.name=CrushTunnel |
wrapper.ntservice.displayname=CrushTunnel |
wrapper.ntservice.description=CrushTunnel |
|
wrapper.tray=false |
|
wrapper.on_exit.0=SHUTDOWN |
wrapper.on_exit.default=RESTART |
|
wrapper.java.classpath.1=CrushTunnel.jar |
wrapper.java.additional.1=-Xmx128m |
wrapper.java.additional.2=-Dcrushtunnel.remote.protocol=https |
wrapper.java.additional.3=-Dcrushtunnel.remote.ip=www.crushftp.com |
wrapper.java.additional.4=-Dcrushtunnel.remote.port=443 |
wrapper.java.additional.5=-Dcrushtunnel.remote.user=demo |
wrapper.java.additional.6=-Dcrushtunnel.remote.pass=demo |
}}} |
|
Now you can test this config from the DOS prompt, or install the service. |
{{{ |
#test |
java -jar wrapper.jar -c wrapper.conf |
#install |
java -jar wrapper.jar -i wrapper.conf |
#remove |
java -jar wrapper.jar -r wrapper.conf |
}}} |
|
(If installing the service, your DOS prompt needs to be running as an administrator.) |
---- |
__Command Line JNLP Launch__\\ |
You could also launch a specific tunnel from the command line using Java WebStart. |
|
{{{ |
<?xml version="1.0" encoding="UTF-8"?> |
<jnlp spec="1.0+" codebase="https://www.crushftp.com"> |
<information> |
<title>CrushTunnel</title> |
<vendor>Ben Spink</vendor> |
<offline-allowed/> |
<shortcut online="true"> |
<desktop/> |
</shortcut> |
</information> |
<security><all-permissions/></security> |
<resources> |
<j2se version="1.2+" /><jar href="/WebInterface/CrushTunnel.jar"/> |
</resources> |
<application-desc main-class="com.crushftp.tunnel2.Tunnel2"> |
<argument>protocol=https</argument> |
<argument>host=www.crushftp.com</argument> |
<argument>port=443</argument> |
<argument>username=demo</argument> |
<argument>password=demo</argument> |
</application-desc> |
</jnlp> |
|
|
}}} |