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 changed one line |
Here is a stand alone example: |
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 5 added 2 lines |
Here is a stand alone example (one long line): |
|
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 11 changed one line |
The tunnel adds some overhead to the transaction, so its suited best for large transfers where it can accelerate them avoiding latency issues. Small files do not benefit from the tunnel other than being inside the encrypted network. |
---- |
!Start a Tunnel in Code |
To programmatically start the tunnel, include the CrushTunnel.jar file, and do something similar to the following: |
At line 13 changed one line |
To programmatically start the tunnel, include the CrushTunnel.jar file. |
{{{ |
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(); |
//tunnel is now open and ready. Connections to it over FTP on 127.0.0.1 will be proxied securely through the tunnel to the CrushFTP FTP server side. |
|
//to stop it later on |
t.stopThisTunnel(); |
}}} |
|
---- |
!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> |
|
|
}}} |