{"full_name":"fatedier/frp","owner":"fatedier","name":"frp","url":"https://github.com/fatedier/frp","description":"A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.","homepage":"","topics":[],"language":"Go","license":"Apache-2.0","avatar":"https://avatars.githubusercontent.com/u/7346661?u=721c6ac19c725486a09c728572e7aee0460e42c0&v=4","created_at":"2015-12-21T15:24:59Z","pushed_at":"2026-11-05T10:08:34Z","metrics":{"stars":110508,"forks":15309,"watchers":1569,"issues":4174,"prs":1342,"releases":118,"issues_open":null,"issues_closed":null,"prs_open":null,"prs_closed":null,"prs_merged":null,"discussions":0},"growth":{"day":{"stars":19,"forks":3,"base_day":"2026-11-09"}},"history":{"dates":["2026-11-09","2026-11-10"],"stars":[110489,110508],"forks":[15306,15309],"watchers":[1569,1569],"issues_open":[null,null],"prs_open":[null,null]},"boards":{"total":121},"same_owner":[],"issues":[{"number":2501,"title":"Allow multiple HTTP proxies on different ports","comments":16,"created_at":"2021-07-30T14:19:52Z"},{"number":2799,"title":"autocert support","comments":8,"created_at":"2022-02-14T09:12:47Z"},{"number":2747,"title":"[Feature Request] Allow storing passwords hashed in config files","comments":7,"created_at":"2022-01-10T12:34:26Z"},{"number":2107,"title":"访问端结束时如果proxy连接数为0时关闭该端口","comments":7,"created_at":"2020-11-24T09:14:32Z"},{"number":1839,"title":"frps 启动时是否可以一并启动配置文件中声明使用的插件","comments":7,"created_at":"2020-06-03T16:10:03Z"},{"number":4184,"title":"[Feature Request] Make client IP accessible to upstream by spoofing source IP","comments":6,"created_at":"2024-04-27T00:03:32Z"},{"number":3909,"title":"[Feature Request] Allow multiple transports/ports on frpc (in order of preference?)","comments":6,"created_at":"2024-01-03T17:23:34Z"},{"number":3992,"title":"[Feature Request] Customize the tls.Config used in HTTPProxyConf","comments":4,"created_at":"2024-02-14T18:25:36Z"}],"discussions":[],"latest_release":{"name":"v0.72.0","tag":"v0.72.0","published_at":"2026-11-04T17:19:02Z","body":"## Features\n\n* frpc can verify server certificates using system CAs, optionally combined with CAs from `trustedCaFile`.\n* `frpc reload` now refreshes certificate files for unchanged `https2http` and `https2https` proxies without interrupting existing connections. Failed refreshes keep the previous certificate and report the error in proxy status and logs while reload still succeeds.\n* Added `metricsServer` to both frps and frpc, a separate listener for health checks, metrics and optional profiling that does not expose the dashboard or the admin API. It is disabled unless `metricsServer.port` is set, defaults to `127.0.0.1`, and has its own credentials and TLS. Setting the port serves `/metrics` on both: frps exposes runtime and business metrics, so `enablePrometheus` is not needed there, and frpc exposes Go runtime metrics only, without linking an extra metrics library.\n\n  The `/healthz`, `/metrics` and pprof endpoints on `webServer`, `webServer.pprofEnable` and `enablePrometheus` still work but are deprecated: configure `metricsServer` instead. They will continue to work until v0.80.0 is released, and may be removed in v0.80.0 or later.\n\n## Fixes\n\n* Fixed proxy and visitor configuration changes being lost when reloading frpc during reconnection.\n* Updated yamux to fix a 100% CPU busy loop after a session shuts down and a session close that could hang when the underlying connection (for example WebSocket) blocks on a write, which could also delay reconnection.\n* frps now closes the multiplexed session of a replaced or failed control connection immediately, releasing its streams and work connections instead of keeping them until keepalive times out.\n* Fixed a data race when frpc updates log prefixes while other goroutines are logging, which could crash the process.\n* Fixed HTTPS and tcpmux route listeners leaving a pending connection open when the listener is removed during connection handoff; the connection is now closed instead of leaving the client to wait for a read timeout.\n\n"},"readme":true,"readme_zh":true,"news":[{"title":"Frp: A fast reverse proxy to help you expose a local server to the internet","url":"https://github.com/fatedier/frp","hn":"https://news.ycombinator.com/item?id=12273722","source":"Hacker News","lang":"en","date":"2016-08-12","points":134,"comments":29},{"title":"Fast proxy to expose a local server behind a NAT or firewall to the internet","url":"https://github.com/fatedier/frp","hn":"https://news.ycombinator.com/item?id=24070564","source":"Hacker News","lang":"en","date":"2020-08-06","points":5,"comments":2},{"title":"A fast reverse proxy to help you expose a local server behind a NAT or firewall","url":"https://github.com/fatedier/frp","hn":"https://news.ycombinator.com/item?id=28898040","source":"Hacker News","lang":"en","date":"2021-10-17","points":4,"comments":0},{"title":"Frp: Expose local server behind NAT/firewall to public (ngrok alternative)","url":"https://github.com/fatedier/frp","hn":"https://news.ycombinator.com/item?id=38917111","source":"Hacker News","lang":"en","date":"2024-01-08","points":2,"comments":1},{"title":"Frp: A fast reverse proxy to help you expose a local server","url":"https://github.com/fatedier/frp","hn":"https://news.ycombinator.com/item?id=21860876","source":"Hacker News","lang":"en","date":"2019-12-23","points":2,"comments":0},{"title":"Webworm: New burrowing techniques","url":"https://news.google.com/rss/articles/CBMiiAFBVV95cUxQd1R2TkljbkJocFFDX0IxWjVjaHRyVExoYWZraVZkZGtrcGhfekR5aHhacWdvOWVjQ3RNT0lZTm1xOTRzVjBkejRtY3ZfRVVwV2I1cUJYV002a1ExMHJHTDAxRER1enhaVmV3cDQ5b190LUZBdER5UzBkM2I2OWpyS3RicTZTNTVC?oc=5","source":"WeLiveSecurity","lang":"en","date":"2026-05-20"},{"title":"China-Nexus Threat Actor Actively Exploiting Ivanti Endpoint Manager Mobile (CVE-2025-4428) Vulnerability","url":"https://news.google.com/rss/articles/CBMiywFBVV95cUxQamxqRktDOXBMdDBDX2VjcnU2cTdNbFNsNlZIT0lad2swVHhIdHB5X3B6RXlDU2lyR0lZQVZNT1N0QlBrYzZBNmxRQTY2ZlJoN0xTVVdRbUtSVjJBWmlpLWtMV0tDNzlMajFRRnVDdG9KWER3VGlYY2hBQTh0RmtyaTJEMGhkbTV3NDFtOEFFZFplUWk1MGdpdF9MTVFiSDBWOXpPaV9IeEVaOUJab1F4dmFtNGpHUWszdnlwV3c0OWtEd29yOGdDR2Nzdw?oc=5","source":"EclecticIQ Blog","lang":"en","date":"2025-05-21"},{"title":"Chinese Threat Actor Used Modified Cobalt Strike Variant to Attack Taiwanese Critical Infrastructure","url":"https://news.google.com/rss/articles/CBMixwFBVV95cUxNN1QzS25yMDVvYkYyT0c2STV2dTdmaDBIRjhpVThIbGhKOWlXTk9FWXBGckZWeGN2S3NTVzh4dW9jVWFyNGMxN3hSaF9pUXoybEJ6dERobkNGMzRUQXlSNUtyTEtTOW5EOF9nM0JhVGVmRHpvbHFDMllTdWVLbTFtdklXNGt4QmFiSEMtRkJoOXVoV0xOQ1c1RklUOHJZMDRvalJHUDlsZGNrNTV5NGRaUzVhU09ZdnRiLWI5M3Q4Ui1WYVpzVVJn?oc=5","source":"EclecticIQ Blog","lang":"en","date":"2023-06-02"},{"title":"Iranian APT seen exploiting GitHub repository as C2 mechanism","url":"https://news.google.com/rss/articles/CBMiqwFBVV95cUxOcHJObDV3SFkwMEJoUnlpQndyd2J4LUdJUmhjbDdBOTVfU24tTVFIYi1qdDJ6aWlwdEp3RE1VZ0RCMWprU21odFJDT3hLY3VVTFdXX29RNGFCaHM3dW01bDdBMW90NzJnNm9PNHFPc3hyYk9HbmJCQmRFMU1kTlVSMkktaHR0ZFVUVGhrUEpvVlVnMUJWUzdSQVZubk5OQi1iWVZsa0hhUmluZzQ?oc=5","source":"Computer Weekly","lang":"en","date":"2022-12-09"},{"title":"不允许你还不知道这些Node.js 后端开发框架","url":"https://news.google.com/rss/articles/CBMiVkFVX3lxTE5DOUR0NU5nWlhTMjNlUlNIYzc2MnR0MGtPQnVaWUY1Y2prSENuQXYzaG5zSUdIZ1cwUGdUT3VDMzZtUDRTLThLVnJaZlU3cHJhNS1WRzV3?oc=5","source":"yeeyi","lang":"zh","date":"2022-10-21"},{"title":"Gen Blogs | APT group targeting governmental agencies in East Asia","url":"https://news.google.com/rss/articles/CBMipwFBVV95cUxObml0SWpIQ3N6WXdSeFMwQVlxTEFaczczSVBsQXZuSVR3cnhGd0RUc2VFWDkwa0dPcVg1WlNFT2ZXZXZMVXVoeUVDZnl6UTNFa084WTZ0OU1uRkYzYUtyQnBMQTFhZ2c4aFhnWm1DUDY4T0xMeXBCend4R2U5ZklrM0tZbnB3WU9HWEhaTFZXMWJDcUk2OHBBNVFaSU9zUjM5M2lPZDQ5dw?oc=5","source":"www.gendigital.com","lang":"en","date":"2020-12-09"}],"stale":false,"snapshot_at":"2026-11-10T09:35:25Z","history_start":"2026-09-06"}