diff --git a/cmd/main.go b/cmd/main.go
index 0f10178..25db057 100644
--- a/cmd/main.go
+++ b/cmd/main.go
@@ -77,7 +77,7 @@ var rootCmd = &cobra.Command{
 var clientCmd = &cobra.Command{
 	Use:     "client",
 	Short:   "Run as client mode",
-	Example: "./hysteria client --config /etc/client.json",
+	Example: "./hysteria client --config /etc/hysteria/client.json",
 	Run: func(cmd *cobra.Command, args []string) {
 		cbs, err := ioutil.ReadFile(viper.GetString("config"))
 		if err != nil {
@@ -101,7 +101,7 @@ var clientCmd = &cobra.Command{
 var serverCmd = &cobra.Command{
 	Use:     "server",
 	Short:   "Run as server mode",
-	Example: "./hysteria server --config /etc/server.json",
+	Example: "./hysteria server --config /etc/hysteria/server.json",
 	Run: func(cmd *cobra.Command, args []string) {
 		cbs, err := ioutil.ReadFile(viper.GetString("config"))
 		if err != nil {
@@ -125,6 +125,7 @@ var serverCmd = &cobra.Command{
 func init() {
 	// add global flags
 	rootCmd.PersistentFlags().StringP("config", "c", "./config.json", "config file")
+	rootCmd.PersistentFlags().String("mmdb-url", "https://github.com/P3TERX/GeoLite.mmdb/raw/download/GeoLite2-Country.mmdb", "mmdb download url")
 	rootCmd.PersistentFlags().String("log-level", "debug", "log level")
 	rootCmd.PersistentFlags().String("log-timestamp", time.RFC3339, "log timestamp format")
 	rootCmd.PersistentFlags().String("log-format", "txt", "log output format")
@@ -135,6 +136,7 @@ func init() {
 
 	// bind flag
 	_ = viper.BindPFlag("config", rootCmd.PersistentFlags().Lookup("config"))
+	_ = viper.BindPFlag("mmdb-url", rootCmd.PersistentFlags().Lookup("mmdb-url"))
 	_ = viper.BindPFlag("log-level", rootCmd.PersistentFlags().Lookup("log-level"))
 	_ = viper.BindPFlag("log-timestamp", rootCmd.PersistentFlags().Lookup("log-timestamp"))
 	_ = viper.BindPFlag("log-format", rootCmd.PersistentFlags().Lookup("log-format"))
@@ -142,6 +144,7 @@ func init() {
 
 	// bind env
 	_ = viper.BindEnv("config", "HYSTERIA_CONFIG")
+	_ = viper.BindEnv("mmdb-url", "HYSTERIA_MMDB_URL")
 	_ = viper.BindEnv("log-level", "HYSTERIA_LOG_LEVEL", "LOGGING_LEVEL")
 	_ = viper.BindEnv("log-timestamp", "HYSTERIA_LOG_TIMESTAMP", "LOGGING_TIMESTAMP_FORMAT")
 	_ = viper.BindEnv("log-format", "HYSTERIA_LOG_FORMAT", "LOGGING_FORMATTER")
diff --git a/cmd/mmdb.go b/cmd/mmdb.go
index b512fd6..1370959 100644
--- a/cmd/mmdb.go
+++ b/cmd/mmdb.go
@@ -3,17 +3,14 @@ package main
 import (
 	"github.com/oschwald/geoip2-golang"
 	"github.com/sirupsen/logrus"
+	"github.com/spf13/viper"
 	"io"
 	"net/http"
 	"os"
 )
 
-const (
-	mmdbURL = "https://github.com/P3TERX/GeoLite.mmdb/raw/download/GeoLite2-Country.mmdb"
-)
-
 func downloadMMDB(filename string) error {
-	resp, err := http.Get(mmdbURL)
+	resp, err := http.Get(viper.GetString("mmdb-url"))
 	if err != nil {
 		return err
 	}