Skip to content

Received an error while attempting to accept a connection:clientConfirmationCode and server copy not equal #48

@otonoton

Description

@otonoton

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions