Socks5 support in http request node

One year ago this was discussed: Socks5 support in http request node?

I am using the desktop version nowadays.

How can I make the HTTP request go via a socks5 proxy in the desktop setup?

When doing things in bash is as easy as this:

I first just get my IP from AWS and get the IP. Then I tell “this next request, via proxy” and it works.

Shouldn’t it be inside n8n as easy as it is with bash+curl to change the proxy on a per-node basis?

Any more community members feeling the same?

Hi @xmontero, I don’t think there are any plans tbh, though I know @RicardoE105 is working on an HTTP Request node overhaul these days. Perhaps he can share more on this topic?

I just had a quick look, and without putting much thought into it, I do not think it will be too difficult to add. Changed this topic to a feature request. Please make sure you upvote it.

1 Like

Big upvote on this. Using ChangeDetection to do socks5 connections today and push data to n8n with webhooks. If this was in n8n, I could move all that into n8n instead.

It would be suuuper nice to have a socks proxy option for basically every http based node (like OpenAi, …), but starting with the http node itself would be a big help as well. :+1:

In previous versions of the HTTP node, I was able to use SOCKS5 and working like charm in this format:

socks5://USERNAME:PASSWORD@IP:PORT

Now, it’s not working anymore.

{
  "errorMessage": "protocol mismatch",
  "errorDetails": {
    "httpCode": "rejected"
  },
  "n8nDetails": {
    "nodeName": "HTTP Request",
    "nodeType": "n8n-nodes-base.httpRequest",
    "nodeVersion": 4.1,
    "itemIndex": 0,
    "time": "14/04/2024, 15:39:38",
    "n8nVersion": "1.36.0 (Self Hosted)",
    "binaryDataMode": "default",
    "stackTrace": [
      "NodeApiError: protocol mismatch",
      "    at Object.execute (/usr/local/lib/node_modules/n8n/node_modules/n8n-nodes-base/dist/nodes/HttpRequest/V3/HttpRequestV3.node.js:1571:35)",
      "    at processTicksAndRejections (node:internal/process/task_queues:95:5)",
      "    at Workflow.runNode (/usr/local/lib/node_modules/n8n/node_modules/n8n-workflow/dist/Workflow.js:728:19)",
      "    at /usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/WorkflowExecute.js:660:53",
      "    at /usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/WorkflowExecute.js:1062:20"
    ]
  }
}

Only the unsecured method is working with:

http://USERNAME:PASSWORD@IP:PORT

Even the https method not work:

{
  "errorMessage": "write EPROTO 705B3AA4FFFF0000:error:0A00010B:SSL routines:ssl3_get_record:wrong version number:../deps/openssl/openssl/ssl/record/ssl3_record.c:354:\n",
  "errorDetails": {
    "httpCode": "rejected"
  },
  "n8nDetails": {
    "nodeName": "HTTP Request",
    "nodeType": "n8n-nodes-base.httpRequest",
    "nodeVersion": 4.1,
    "itemIndex": 0,
    "time": "14/04/2024, 15:40:45",
    "n8nVersion": "1.36.0 (Self Hosted)",
    "binaryDataMode": "default",
    "stackTrace": [
      "NodeApiError: write EPROTO 705B3AA4FFFF0000:error:0A00010B:SSL routines:ssl3_get_record:wrong version number:../deps/openssl/openssl/ssl/record/ssl3_record.c:354:",
      "",
      "    at Object.execute (/usr/local/lib/node_modules/n8n/node_modules/n8n-nodes-base/dist/nodes/HttpRequest/V3/HttpRequestV3.node.js:1571:35)",
      "    at processTicksAndRejections (node:internal/process/task_queues:95:5)",
      "    at Workflow.runNode (/usr/local/lib/node_modules/n8n/node_modules/n8n-workflow/dist/Workflow.js:728:19)",
      "    at /usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/WorkflowExecute.js:660:53",
      "    at /usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/WorkflowExecute.js:1062:20"
    ]
  }
}