fatedier / frp

A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
Apache License 2.0
80.5k stars 12.74k forks source link

Multiple [[proxies]] sections in toml #4177

Open manishbuttan opened 3 weeks ago

manishbuttan commented 3 weeks ago

Bug Description

Why is this config frpc.toml not working?

frpc.toml

serverAddr = "someserver.link" serverPort = 7000

[[proxies]] name = "janus" type = "https" customDomains = ["am_0001_jn.someserver.link"] [proxies.plugin] type = "https2https" localAddr = "127.0.0.1:8089" crtPath = "/home/pi/Documents/certificates/fullchain.pem" keyPath = "/home/pi/Documents/certificates/am_private.pem" hostHeaderRewrite = "127.0.0.1" requestHeaders.set.x-from-where = "frp"

[[proxies]] name = "web" type = "https" customDomains = ["am_0001_wb.someserver.link"] [proxies.plugin] type = "https2http" localAddr = "127.0.0.1:8000" crtPath = "/home/pi/Documents/certificates/fullchain.pem" keyPath = "/home/pi/Documents/certificates/am_private.pem" hostHeaderRewrite = "127.0.0.1" requestHeaders.set.x-from-where = "frp"

If I remove the second proxies section, the config works. But two proxies sections seem to be only loading the second one. The first is exposing a janus https server, and the second is exposing a web http server.

frpc Version

0.57.0

frps Version

0.57.0

System Architecture

Rpi runs frpc, ec2 linux runs frps

Configurations

I have included it in the config above

Logs

No response

Steps to reproduce

  1. ...

Affected area

fatedier commented 3 weeks ago

Need logs.

superzjg commented 3 weeks ago

It seems that only one HTTPS/HTTP can be configured. If multiple are needed, please use type = "tcp"

manishbuttan commented 2 weeks ago

Thank you for your reply. Can you please help with a sample config? The full config seems to have specific fields that work under different configs:

[[proxies]] name = "plugin_https2https" type = "https" customDomains = ["test.yourdomain.com"] [proxies.plugin] type = "https2https" localAddr = "127.0.0.1:443" crtPath = "./server.crt" keyPath = "./server.key" hostHeaderRewrite = "127.0.0.1" requestHeaders.set.x-from-where = "frp"

In the above there is a crtPath and ketPath. I don't understand how to create multiple https2https entries. You said to use tcp. But where will the crt and key files go?

Do I keep all these fields and just change the type="tcp"? But this won't work and gives this error: unmarshal ProxyConfig error: json: unknown field "customDomains"

Seems like each type of config has it's own custom fields. Can you please help me with a full config with all fields, where I may expose two https services as https services to frps with frpc.toml having a crtPath and keyPath and custom domain names?

manishbuttan commented 2 weeks ago

Sorry, I don't know why things are appearing bold in my post.