1) Надо выяснить, имеется ли связность между Вашим другом и Вами.
Дело в том, что провайдеры обычно предлагают подключение через NAT, когда юзеру дают IP-адрес из пула "10.*.*.*", а запросы юзера наружу - на выходе подвергаются NAT-маскарадингу. А общение пользователей между собой обычно блокируется.
Многие юзеры ставят у себя роутер, которые доже делает NAT - это создаёт ещё один барьер для доступа к компьютера (и заодно защищает компьютер от ряда хакерских атак).
Допустим, Ваш друг подключён к другому провайдеру (или к другому NAT-пулу этого же провайдера) - тогда он рассматривается как внешний клиент. В этом случае Вам надо получить у провайдера внешний неизменный IP-адрес. Сотрудники провайдера должны объяснить Вам, что делать; но с высокой вероятностью они откажутся это делать. А если согласятся - это стоит денег, сопоставимых с арендой вирт.сервера.
Если у Вас есть роутер - то на нём надо настроить проброс портов. Смотрите настройки роутера - там должно быть.
Учтите, что на порту:80 обычно висит Web-интерфейс роутера.
2) Если Вы хотите обращаться по доменному имени - то надо получить доменное имя. Ну или если обращаться будет только один человек - то он может прописать это имя себе в файл hosts.
3) Сейчас модно использовать HTTPS, а ему нужны сертификаты. Сертификат можно купить за деньги. Или можно сделать свой собственный сертификат - и друг внедрит его в свой браузер.
Если же обойтись HTTP - то провайдер может всовывать в Ваш сайт свою рекламу, многие так давно уже делают.