use nixos module to configure frp
This commit is contained in:
parent
9b8ec24c63
commit
56151e5f52
2 changed files with 84 additions and 89 deletions
|
@ -5,44 +5,40 @@
|
||||||
}: let
|
}: let
|
||||||
inherit (secrets) frp_config;
|
inherit (secrets) frp_config;
|
||||||
in {
|
in {
|
||||||
systemd.services.frpc = {
|
services.frp = {
|
||||||
enable = true;
|
enable = true;
|
||||||
description = "FRP Client";
|
role = "client";
|
||||||
after = ["network.target"];
|
settings = {
|
||||||
requires = ["network.target"];
|
common = {
|
||||||
wantedBy = ["multi-user.target"];
|
server_addr = "${frp_config.ip}";
|
||||||
serviceConfig = {
|
server_port = 7000;
|
||||||
Type = "simple";
|
authentication_method = "token";
|
||||||
ExecStart = "${pkgs.frp}/bin/frpc -c /etc/frp/frpc.ini";
|
token = "${frp_config.token}";
|
||||||
Restart = "always";
|
};
|
||||||
RestartSec = "5s";
|
|
||||||
|
"ssh.rico1" = {
|
||||||
|
type = "tcp";
|
||||||
|
local_port = 22;
|
||||||
|
remote_port = 6001;
|
||||||
|
};
|
||||||
|
|
||||||
|
"http.matrix.adtya.xyz" = {
|
||||||
|
type = "http";
|
||||||
|
custom_domains = "matrix.adtya.xyz";
|
||||||
|
local_port = 80;
|
||||||
|
};
|
||||||
|
|
||||||
|
"https.matrix.adtya.xyz" = {
|
||||||
|
type = "https";
|
||||||
|
custom_domains = "matrix.adtya.xyz";
|
||||||
|
local_port = 443;
|
||||||
|
};
|
||||||
|
|
||||||
|
"https.matrix.adtya.xyz.8448" = {
|
||||||
|
type = "tcp";
|
||||||
|
local_port = 8448;
|
||||||
|
remote_port = 8448;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
environment.etc."frp/frpc.ini".text = ''
|
|
||||||
[common]
|
|
||||||
server_addr = "${frp_config.ip}"
|
|
||||||
server_port = 7000
|
|
||||||
authentication_method = token
|
|
||||||
token = "${frp_config.token}"
|
|
||||||
|
|
||||||
[ssh.rico1]
|
|
||||||
type = tcp
|
|
||||||
local_port = 22
|
|
||||||
remote_port = 6001
|
|
||||||
|
|
||||||
[http.matrix.adtya.xyz]
|
|
||||||
type = http
|
|
||||||
custom_domains = matrix.adtya.xyz
|
|
||||||
local_port = 80
|
|
||||||
|
|
||||||
[https.matrix.adtya.xyz]
|
|
||||||
type = https
|
|
||||||
custom_domains = matrix.adtya.xyz
|
|
||||||
local_port = 443
|
|
||||||
|
|
||||||
[https.matrix.adtya.xyz.8448]
|
|
||||||
type = tcp
|
|
||||||
local_port = 8448
|
|
||||||
remote_port = 8448
|
|
||||||
'';
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,59 +5,58 @@
|
||||||
}: let
|
}: let
|
||||||
inherit (secrets) frp_config;
|
inherit (secrets) frp_config;
|
||||||
in {
|
in {
|
||||||
systemd.services.frpc = {
|
services.frp = {
|
||||||
enable = true;
|
enable = true;
|
||||||
description = "FRP Client";
|
role = "client";
|
||||||
after = ["network.target"];
|
settings = {
|
||||||
requires = ["network.target"];
|
"common" = {
|
||||||
wantedBy = ["multi-user.target"];
|
server_addr = "${frp_config.ip}";
|
||||||
serviceConfig = {
|
server_port = 7000;
|
||||||
Type = "simple";
|
authentication_method = "token";
|
||||||
ExecStart = "${pkgs.frp}/bin/frpc -c /etc/frp/frpc.ini";
|
token = "${frp_config.token}";
|
||||||
Restart = "always";
|
};
|
||||||
RestartSec = "5s";
|
|
||||||
|
"ssh.rico2" = {
|
||||||
|
type = "tcp";
|
||||||
|
local_port = 22;
|
||||||
|
remote_port = 6002;
|
||||||
|
};
|
||||||
|
|
||||||
|
"http.adtya.xyz" = {
|
||||||
|
type = "http";
|
||||||
|
custom_domains = "adtya.xyz";
|
||||||
|
local_port = 80;
|
||||||
|
};
|
||||||
|
|
||||||
|
"https.adtya.xyz" = {
|
||||||
|
type = "https";
|
||||||
|
custom_domains = "adtya.xyz";
|
||||||
|
local_port = 443;
|
||||||
|
};
|
||||||
|
|
||||||
|
"http.www.adtya.xyz" = {
|
||||||
|
type = "http";
|
||||||
|
custom_domains = "www.adtya.xyz";
|
||||||
|
local_port = 80;
|
||||||
|
};
|
||||||
|
|
||||||
|
"https.www.adtya.xyz" = {
|
||||||
|
type = "https";
|
||||||
|
custom_domains = "www.adtya.xyz";
|
||||||
|
local_port = 443;
|
||||||
|
};
|
||||||
|
|
||||||
|
"http.proofs.adtya.xyz" = {
|
||||||
|
type = "http";
|
||||||
|
custom_domains = "proofs.adtya.xyz";
|
||||||
|
local_port = 80;
|
||||||
|
};
|
||||||
|
|
||||||
|
"https.proofs.adtya.xyz" = {
|
||||||
|
type = "https";
|
||||||
|
custom_domains = "proofs.adtya.xyz";
|
||||||
|
local_port = 443;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
environment.etc."frp/frpc.ini".text = ''
|
|
||||||
[common]
|
|
||||||
server_addr = "${frp_config.ip}"
|
|
||||||
server_port = 7000
|
|
||||||
authentication_method = token
|
|
||||||
token = "${frp_config.token}"
|
|
||||||
|
|
||||||
[ssh.rico2]
|
|
||||||
type = tcp
|
|
||||||
local_port = 22
|
|
||||||
remote_port = 6002
|
|
||||||
|
|
||||||
[http.adtya.xyz]
|
|
||||||
type = http
|
|
||||||
custom_domains = adtya.xyz
|
|
||||||
local_port = 80
|
|
||||||
|
|
||||||
[https.adtya.xyz]
|
|
||||||
type = https
|
|
||||||
custom_domains = adtya.xyz
|
|
||||||
local_port = 443
|
|
||||||
|
|
||||||
[http.www.adtya.xyz]
|
|
||||||
type = http
|
|
||||||
custom_domains = www.adtya.xyz
|
|
||||||
local_port = 80
|
|
||||||
|
|
||||||
[https.www.adtya.xyz]
|
|
||||||
type = https
|
|
||||||
custom_domains = www.adtya.xyz
|
|
||||||
local_port = 443
|
|
||||||
|
|
||||||
[http.proofs.adtya.xyz]
|
|
||||||
type = http
|
|
||||||
custom_domains = proofs.adtya.xyz
|
|
||||||
local_port = 80
|
|
||||||
|
|
||||||
[https.proofs.adtya.xyz]
|
|
||||||
type = https
|
|
||||||
custom_domains = proofs.adtya.xyz
|
|
||||||
local_port = 443
|
|
||||||
'';
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue