-
Notifications
You must be signed in to change notification settings - Fork 30
Description
I recently updated from an old version of this program which was working fine using obfs4, but now so many things have changed and there is so little documentation I am completely lost. I didn't even know obfs4 is no longer supported and could not find any info on this except for a closed github issue.
Also, there seems to be no documentation on how to generate a config anymore. The only reference to using -generateConfig anywhere on the internet is in that same closed github issue on this repo. I'm probably just doing something wrong so please correct my commands as necessary.
Anyways, I tried to generate a config with:
shapeshifter-dispatcher -transport shadow -serverIP my.public.ip.here:443 -generateConfig
Which produces the two client/server json files. Also "my.public.ip.here" is indeed the external IP of my server, however it is NOT a local IP that's actually attached to an interface on the machine because this is a cloud VM, if that matters. The only local address is in a private range.
The server config:
{
"serverAddress": "my.public.ip.here:443",
"serverPrivateKey": "<redacted>",
"cipherName": "darkstar",
"transport": "Shadow",
"logDir": null
}
I had to change "my.public.ip.here" in the server config to 0.0.0.0 in order to get the server to start. No idea if this is confusing anything. Also why is serverAddress and bindaddr needed? This doesn't make sense to me.
I start the server with:
shapeshifter-dispatcher -transparent -server -state state -target 127.0.0.1:22 -transport shadow -bindaddr shadow-0.0.0.0:443 -optionsFile ShadowServerConfig.json -logLevel DEBUG -enableLogging
The client config is:
{
"serverAddress": "my.public.ip.here:443",
"serverPublicKey": "<redacted>",
"cipherName": "darkstar",
"transport": "Shadow",
"logDir": null
}
And I start the client with:
shapeshifter-dispatcher -transparent -client -state state -transports shadow -proxylistenaddr 127.0.0.1:8888 -optionsFile ShadowClientConfig.json -logLevel DEBUG -enableLogging
But then upon trying to telnet 127.0.0.1 8888 on the client, I look at the server and it has printed out:
shadow listening on 0.0.0.0:443
accepted
Received an error while attempting to accept a connection:clientConfirmationCode and server copy not equal
With nothing relevant in dispatcher.log on either side. The client side printed out this:
Dialing
--> Unable to dial transport server: EOF
-> Name: shadow
-> Options: {
"serverAddress": "my.public.ip.here:443",
"serverPublicKey": "<redacted>",
"cipherName": "darkstar",
"transport": "Shadow",
"logDir": null
}
Any idea what is going on? I've not been able to get any other similar program to work at all or even remotely gotten this close, so this is my last hope. Thanks